首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止回溯

停止回溯
EN

Stack Overflow用户
提问于 2010-04-25 22:22:43
回答 8查看 2.4K关注 0票数 3

在C/C++中,有没有办法在找到第一个解后停止回溯算法,而不退出程序。

我希望我的函数立即退出函数,而不是逐个声明return退出每一层递归。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-04-25 22:42:23

您可以在C和C++中使用setjmp()/longjmp(),这是一种简单但有效的方法,可以绕过一直传递标志的需要。

票数 0
EN

Stack Overflow用户

发布于 2010-04-25 22:30:16

一种又快又脏的方法是抛出一个异常,并在基础级别上捕获它(现在很多人都会尖叫着只对错误使用异常,我认为,建立解决方案是一个例外事件,因为找不到解决方案是常态)

票数 5
EN

Stack Overflow用户

发布于 2010-04-25 22:34:51

如果你有一个在完成时设置的标志,然后在你的函数中检查它,你可以解决这个问题。例如:

代码语言:javascript
复制
void foo(..)
{
   if (g_done) return;
...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2708519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档