gpt4 book ai didi

c++ - C++ 对象如何将迭代器作为其在 std::list 中位置的成员?

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:53 26 4
gpt4 key购买 nike

我有一个应用程序,其中的节点相互连接。每个节点都存储到其他节点的传入和传出连接列表。有时接收节点需要能够摆脱它的传入连接之一。发生这种情况时,我希望连接不仅从接收节点的传入连接列表中删除,而且还希望从发送节点的传出连接列表中删除。但是为了做到这一点,接收节点需要发送节点的迭代器来连接。如果我可以将该迭代器存储为连接对象的成员,那就太好了。但是尝试这样做甚至不会编译。当我尝试将迭代器声明为类成员时,编译器告诉我它是未定义的类型。这是我的类声明的样子:

class Connection
{
public:
Connection();
~Connection();

Node* pSourceNode;
std::list<Connection*>::iterator SourcesIterator;
};

有没有什么巧妙的方法可以使这个或类似的东西工作而不必编写我自己的链表?也许到目前为止我还没有理解某些数据结构?

最佳答案

我能够很好地编译您的代码。你在做一个#include <list>吗?在标题中?

您可能不希望保留 iterator反正;大量的操作会使它们失效。您可以保留指向 list 的指针有问题并获得新的iterator需要时。

关于c++ - C++ 对象如何将迭代器作为其在 std::list 中位置的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4821313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com