ach*_*how 9 c++ stack-overflow recursion continuations
假设在C++中,你在递归函数上做了太多的递归调用并且出现了堆栈溢出错误.
你会如何以延续传递方式重写它以避免堆栈溢出?
我在C++中描绘这个有点困难.
嗯,这是一个相当开放式的问题,但埃里克·利珀特(Eric Lippert)写了一个(实际上是两个)相当长的关于这个主题的系列。不完全是正确的语言,但它应该仍然很有帮助并给出总体思路。
虽然在 C++ 中实现 CPS 似乎只是为了修复单个递归函数而需要做很多工作,但当您可以使用某种算法使函数与队列迭代时(您仍然使用基本相同的数据量,但堆远远不够)限制较少)。
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |