首先看一下我的结构
typedef struct {
int treeDepth;
unsigned __int8 dmv[19];
unsigned __int8 dv[19];
unsigned __int8 ih;
bool flagLeft = true ;
bool flagRight = true;
}problem_t;
我有一个与此结构一起使用的函数,
void PMSprune(problem_t &problem)
{
/*
--blocks of code!
--modify properties of "problem"
*/
PMSprune(problem);// I want to call it with problem.treeDepth++, but I
//don't want my original struct to be modified
}
但是此函数是递归的,我想在修改结构的属性之一的情况下调用此函数,没人知道我该怎么做吗?
更新:
我的项目是实时的,时间对我来说真的很重要,这个函数在一个循环中被调用约一百万次
最佳答案
拆分功能:
void PMSpruneRec(problem_t &problem, int treeDepth)
{
/*
--blocks of code!
--modify properties of "problem"
*/
PMSpruneRec(problem, treeDepth + 1);
}
void PMSprune(problem_t &problem)
{
PMSpruneRec(problem, problem.treeDepth);
}
当然,您仍然需要一些终止条件。
关于c++ - 通过struct调用递归函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38326157/