C ++如何使用连续传递样式?

问题描述 投票:9回答:2

假设在C ++中,您对递归函数进行了太多的递归调用,并得到堆栈溢出错误。

您将如何以连续传递样式重写此代码以避免堆栈溢出?

我在用C ++绘制图片时遇到了一些困难。

c++ recursion stack-overflow continuations
2个回答
4
投票

嗯,这是一个相当开放的问题,但是埃里克·利珀特(Eric Lippert)写了(实际上是两个)而不是long series about exactly this topic。语言不完全正确,但是仍然应该会很有帮助,并能提供总体思路。

尽管在C ++中实现CPS似乎只是为了修复单个递归函数而进行的大量工作,但是当您可以使用某种算法使该函数与队列进行迭代时(您仍然使用基本相同的数据量,但是堆的限制要少得多。


© www.soinside.com 2019 - 2024. All rights reserved.