2011-03-06 26 views
1

我創建了一個類「Node」來包含一堆數據。我正在試圖列出這個類的相同類型。我在嘗試使用push_back()或任何其他函數時遇到錯誤。如何創建和使用「customClass」類型的列表

錯誤是: 「 /home/.../FIFO.cpp|61|error:用於調用‘的std ::名單> ::的push_back(節點* &)’不匹配函數|」

Node *tempProcess; 
list<Node> processList; //list of all processes 

tempProcess = new Node(tempArrivInt, tempExecInt); 
processList.push_back(tempProcess); 

有人可以幫忙嗎?

回答

4

編譯器錯誤告訴您「無法找到將Node *作爲參數的push_back函數」。這是因爲您的列表包含Node而不是Node *,這些不是相同的類型。用途:

list<Node *> 
3

您創建的Node個列表,但嘗試將Node*(指針Node)插入,這是new回報。

如果你想使用一個list<Node>,你可以寫:

processList.push_back(Node(tempArrivInt, tempExecInt)); 

如果你想與new創建Node對象,你需要在問題編輯代碼,以便processListlist<Node*>。請注意,在這種情況下,在從列表中刪除元素之前,您必須手動使用delete對象Node,否則您將發生內存泄漏。

+0

感謝您的幫助。解決了我的問題。 :) – Robin

相關問題