使用指针从列表中删除元素

时间:2013-06-25 10:43:47

标签: c++ element

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

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

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