gpt4 book ai didi

c++ - 突破 C++ 中的递归和原始函数

转载 作者:太空狗 更新时间:2023-10-29 23:20:21 27 4
gpt4 key购买 nike

所以我想弄清楚如何完全打破 C++ 中的递归函数。

在示例中,我有一个二维数组,其中包含正确的必要信息。在没有递归的情况下,一切都按预期工作 - 返回 time[start] 的部分中断了函数。

在递归的情况下,return 会中断当前的递归,但函数本身会继续迭代 for< 中的每个下一个 i/ 循环。我希望函数在此时停止。

有没有办法一起突破这个功能?

int findConn(int **computers, int *time, int *connections, int cnt, int k, int start){
for (int i=0; i<cnt; i++){
if ((computers[k][i]!=0)&&(i!=start)&&(i!=k)){
if(computers[start][i]!=0){
time[start]++;
return time[start];
} else {
time[start]++;
k=i;
findConn(computers, time, connections, cnt, k, start);
}
}
}
return 0;
}

最佳答案

    const int nBreakAll = -1;
int findConn(int **computers, int *time, int *connections, int cnt, int k, int start){
for (int i=0; i<cnt; i++){
...
if(break condition)
return nBreakAll;
....
if ( nBreakAll == findConn(...) )
{
return nBreakAll; //this handles the break of recursive loop
}
//continues here
....

}
return 0;
}

关于c++ - 突破 C++ 中的递归和原始函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50502178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com