作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
简单的数据结构,例如链表,其中“下一个”指针是智能指针。当头节点被删除时,“下一个”的智能指针启动并进行递归删除。对于很长的列表,这很快就会使堆栈崩溃。
我不得不回去用简单的原始指针替换这些智能指针。我在这里遗漏了什么吗?
最佳答案
假设我没听错,head
和 next
都是智能指针,您可以通过以下方式避免这种情况:
head = head->next;
或等价物。您的“旧”头将被删除,旧的第二名项目将被提升为头。一切都在一个一致的变化中,没有深度递归。唯一的先决条件是 head 不是 NULL
开头。
正如 Mike 在评论中指出的那样,如果目标是删除整个列表,那么您可以在一个循环中重复该操作。
关于c++ - 由于递归删除,智能指针炸毁堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131314/
我有一个 grpc 基准测试代码,它使用一个函数使用 for-select 子句将数百个 goroutine channel 合并到一个 channel 。代码是这样的 func (b *B
我是 ksoap2 的新手,我正在尝试让 example w3 schools example 工作。由于某种原因,它总是在这条线上失败。 SoapObject Request = new SoapO
我是一名优秀的程序员,十分优秀!