Visual c++ 生产质量VC++代码中的递归

Visual c++ 生产质量VC++代码中的递归,visual-c++,recursion,Visual C++,Recursion,在编写高质量的VC++代码时,是否可以使用递归?为什么?为什么不?是的。但绝不是死代码。那太傻了。是的。但绝不是死代码。那太傻了。当然-例如,如果你想遍历一个树结构,你还会使用什么 也许你希望有一个最大深度,以确保你不是在写一个无限循环。如果这在您的示例中有意义当然-例如,如果您想遍历树结构,您还将使用什么 也许你希望有一个最大深度,以确保你不是在写一个无限循环。如果这在你的例子中有意义的话 有没有办法确定在什么时候 我将遇到一个堆栈 溢出 这取决于您的深度,以及实际递归的大小。我想你明白递归的

在编写高质量的VC++代码时,是否可以使用递归?为什么?为什么不?是的。但绝不是死代码。那太傻了。

是的。但绝不是死代码。那太傻了。

当然-例如,如果你想遍历一个树结构,你还会使用什么


也许你希望有一个最大深度,以确保你不是在写一个无限循环。如果这在您的示例中有意义

当然-例如,如果您想遍历树结构,您还将使用什么

也许你希望有一个最大深度,以确保你不是在写一个无限循环。如果这在你的例子中有意义的话

有没有办法确定在什么时候 我将遇到一个堆栈 溢出

这取决于您的深度,以及实际递归的大小。我想你明白递归的作用吧

有没有办法确定在什么时候 我将遇到一个堆栈 溢出

这取决于您的深度,以及实际递归的大小。我想你明白递归的作用吧

有没有办法确定在什么时候会遇到堆栈溢出

不是真的。当耗尽堆栈空间时会发生堆栈溢出-但是

初始堆栈大小可以通过编程方式更改,并且可能默认为不同的大小,具体取决于您的操作系统/编译器/等等 其中有多少已经用光了,这取决于你的应用程序和你的应用程序使用的库以前都做了些什么——这通常是无法预测的 每个调用需要多少堆栈取决于您在函数中执行的操作。如果您只在堆栈上分配一个整数,那么您可能能够递归大量的次数,但是如果您在堆栈上分配一个200k的缓冲区,那么就没有那么多了。 我只在无限循环中,或者使用前面提到的200k缓冲区,击中了一个

我发现我的应用程序更倾向于崩溃,而不是永远使用100%的CPU循环,并且必须强制终止。这是远程服务器上的正确PITA,而不是坏连接,因为windows缺少SSH

一个粗略的指导:您认为递归函数可能会连续调用自己超过10000次吗?或者你正在做一些愚蠢的事情,比如在堆栈上分配200k缓冲区

如果是,请担心。 如果没有,继续做更重要的事情

有没有办法确定在什么时候会遇到堆栈溢出

不是真的。当耗尽堆栈空间时会发生堆栈溢出-但是

初始堆栈大小可以通过编程方式更改,并且可能默认为不同的大小,具体取决于您的操作系统/编译器/等等 其中有多少已经用光了,这取决于你的应用程序和你的应用程序使用的库以前都做了些什么——这通常是无法预测的 每个调用需要多少堆栈取决于您在函数中执行的操作。如果您只在堆栈上分配一个整数,那么您可能能够递归大量的次数,但是如果您在堆栈上分配一个200k的缓冲区,那么就没有那么多了。 我只在无限循环中,或者使用前面提到的200k缓冲区,击中了一个

我发现我的应用程序更倾向于崩溃,而不是永远使用100%的CPU循环,并且必须强制终止。这是远程服务器上的正确PITA,而不是坏连接,因为windows缺少SSH

一个粗略的指导:您认为递归函数可能会连续调用自己超过10000次吗?或者你正在做一些愚蠢的事情,比如在堆栈上分配200k缓冲区

如果是,请担心。
如果没有,继续做更重要的事情。

递归对于遍历文件夹/目录等文件结构几乎是必不可少的


如果使用递归,遍历树状结构非常容易。

递归对于遍历文件夹/目录等文件结构几乎是必不可少的


如果使用递归,遍历树状结构非常容易。

它还没有死!它渴望峡湾。@Aardvark-你不能投票支持评论真是太糟糕了-它没有死!它渴望峡湾。@Aardvark-你不能投票支持评论真是太糟糕了-