0

如果我在 C++ 中有一个列表,并且我有一个指向添加到列表中的一个对象的指针,如果我有一个指向这个元素的指针,我可以从这个列表中删除这个元素吗?

最好的方法是什么,列表中的元素可以访问列表中的其他元素?

我的目标是,列表中的元素具有破坏自身的功能。

4

2 回答 2

1

如果您谈论的是标准容器,那么当您插入一个对象时,您会复制它,而存储的对象只是一个副本。如果存储指针,则可以删除此指针指向的对象。

您应该尝试编写更详细的问题。如果我理解正确,我只能说:不要那样做。;] 从这些列表中删除/删除对象的逻辑应该在其他地方。

于 2013-06-25T10:49:58.260 回答
0

My target is, that a element in the list has a function to destroy itself.

在这种情况下,最好有一个双链表(其中每个节点都有一个指向前一个节点和下一个节点的指针)。如果您currentNode指向要删除的对象,则首先添加如下一行:

currentNode->previousNode->nextNode = currentNode->nextNode;

这会将当前节点之前的节点链接到当前节点旁边的节点。

在此行之后,您可以安全地删除您的currentNode

于 2013-06-25T11:05:03.850 回答