2011-03-06 10 views
1

私はクラス "ノード"を作成して、たくさんのデータを格納しました。私は、このクラスの同じタイプのリストを作成しようとしています。私はpush_back()または他の関数のいずれかを使用しようとしてエラーが発生しています。 " /home/.../FIFO.cpp|61|error:『のstd ::リスト> ::一back(ノード* &)』への呼び出しに該当する機能|""customClass"タイプのリストを作成して使用する方法

エラーは以下のとおりです。

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のリストを作成しますが、何newリターンである、Node*Nodeへのポインタ)を挿入してみてください。あなたがlist<Node>を使用したい場合は

、あなたが書くことができます。

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

をおnewとあなたのNodeオブジェクトを作成したい場合は、processListがあるようにあなたが質問にコードを編集する必要がありますlist<Node*>。この場合、リストから要素を削除する前に、Nodeオブジェクトを手作業でdeleteする必要があります。そうしないと、メモリリークが発生します。

+0

ありがとうございました。私の問題を解決しました。 :) – Robin

関連する問題