【问题标题】:How to create and use list, of type "customClass"如何创建和使用“customClass”类型的列表
【发布时间】:2011-07-09 15:35:59
【问题描述】:

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

错误如下:" /home/.../FIFO.cpp|61|error: no matching function for call to ‘std::list >::push_back(Node*&)’|”

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

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

有人可以帮忙吗?

【问题讨论】:

    标签: c++ class list push-back


    【解决方案1】:

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

    list<Node *>
    

    【讨论】:

      【解决方案2】:

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

      如果你想使用list&lt;Node&gt;,你可以写:

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

      如果您想用new 创建您的Node 对象,您需要编辑问题中的代码,使processList 成为list&lt;Node*&gt;。请注意,在这种情况下,您必须在从列表中删除元素之前手动 deleteNode 对象,否则会导致内存泄漏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        • 2021-11-14
        • 1970-01-01
        • 2010-11-21
        • 1970-01-01
        相关资源
        最近更新 更多