我创建了一个“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);
有人可以帮忙吗?
答案 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
个对象,则需要修改问题中的代码,以便processList
为list<Node*>
。请注意,在这种情况下,在从列表中删除元素之前,您必须手动delete
Node
个对象,否则会出现内存泄漏。