gpt4 book ai didi

c++ - 由于递归删除,智能指针炸毁堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:52 25 4
gpt4 key购买 nike

简单的数据结构,例如链表,其中“下一个”指针是智能指针。当头节点被删除时,“下一个”的智能指针启动并进行递归删除。对于很长的列表,这很快就会使堆栈崩溃。

我不得不回去用简单的原始指针替换这些智能指针。我在这里遗漏了什么吗?

最佳答案

假设我没听错,headnext 都是智能指针,您可以通过以下方式避免这种情况:

head = head->next;

或等价物。您的“旧”头将被删除,旧的第二名项目将被提升为头。一切都在一个一致的变化中,没有深度递归。唯一的先决条件是 head 不是 NULL 开头。

正如 Mike 在评论中指出的那样,如果目标是删除整个列表,那么您可以在一个循环中重复该操作。

关于c++ - 由于递归删除,智能指针炸毁堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131314/

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