如何创建和使用“customClass”类型的列表

时间:2011-03-06 01:51:15

标签: c++ class list push-back

我创建了一个“Node”类来包含一堆数据。我正在尝试列出这个类的相同类型。我在尝试使用push_back()或任何其他函数时遇到错误。

错误如下:“ /home/.../FIFO.cpp|61| error:没有匹配函数来调用'std :: list> :: push_back(Node *&)'|“

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

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

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

编译器错误告诉您“无法找到以Node *作为参数的push_back函数”。这是因为您的列表包含Node而不是Node *,这些类型不同。使用:

list<Node *>

答案 1 :(得分:3)

您创建了Node的列表,但尝试插入Node*(指向Node的指针),这是new返回的内容。

如果您想使用list<Node>,可以写:

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

如果您想使用Node创建new个对象,则需要修改问题中的代码,以便processListlist<Node*>。请注意,在这种情况下,在从列表中删除元素之前,您必须手动delete Node个对象,否则会出现内存泄漏。