2014-10-06 103 views
-1

我想使用std :: vector push_back方法插入節點對象到存儲模板節點對象的向量。我得到的錯誤我相信是說我用於push_back方法的輸入不是正確的類型?有人可以向我解釋這個嗎?錯誤與std :: vector push_back

+0

'vector > v;'足以創建一個向量。這裏沒有新的需求。注意這會創建一個局部變量。和你的地圖一樣。如果他們是類成員,則不需要再將它們放入構造函數中。它沒有任何用處。 – 2014-10-06 01:37:04

+0

要做的最好的事情是發佈一個簡短的完整示例,所以我們不需要猜測你的類定義是什麼樣的,等等。你的構造函數看起來相當不對。如果您的意思是初始化成員變量,請使用初始化程序列表,不要創建立即超出作用域的新變量。 – 2014-10-06 01:40:02

+0

好吧,我刪除了在構造函數中創建的無意義向量和映射,但仍然收到相同的錯誤。 – user2932450 2014-10-06 01:43:26

回答

2

由錯誤信息來看,它看起來像v(類的成員,而不是在構造函數中的怪異和毫無意義的局部變量)聲明vector<int>*(或者vector<T>*)時,它應該是vector<Node<T>>

+0

對,因爲我使用的測試用例,它被聲明爲矢量。我將添加一個顯示測試用例的編輯。 – user2932450 2014-10-06 01:45:20

+1

@ user2932450:那你爲什麼要在裏面放置一個'Node ',當它存儲'int'? – 2014-10-06 01:45:56

+0

節點和PriorityQueue 都是模板類。 PriorityQueue 可以存儲任何類型的節點。因此,矢量>,可以存儲任何類型的節點。 – user2932450 2014-10-06 01:49:39

相關問題