函数内部的递归函数
Recursive function inside of a function c++
假设我有一个包装器函数,它围绕某个较小的递归函数运行。但是,在调用递归函数之前,包装器会创建递归函数使用的对象。我如何在c++中做到这一点?我只需要让它成为自己的类吗?编辑-我知道我是否可以把它变成一门课,以及如何从那里把它带走-但我的问题是,我需要一门课吗?或者我可以在不上一门课的情况下逃脱?
我举了一个通用的例子来澄清我的问题:
void wrapper()
{
Object myObject;
bool recurFun(int x)
{
// do some stuff with myObject
if (some condition){return recurFun(x-1)}
else {return true}
}
}
请忽略任何基本的语法类型错误,这不是一个简单的例子,只是为了帮助你们理解我的问题。谢谢!
你可以使用lambdas来获取闭包:
void wrapper()
{
Object myObject;
std::function<bool(int)> recurFun;
recurFun = [&](int x) -> bool {
// do some stuff with myObject
if (some condition){return recurFun(x-1)}
else {return true}
}
}
当一个函数需要使用某物时,首先应该想到的是将其作为该函数的参数。所以让你的递归函数接受这个对象作为参数,并在递归调用中执行它。包装器函数将自然地设置对象并传递它。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何在Elixir中调用递归函数并行
- 递归函数有效,但无法记忆
- 为什么我的递归函数按降序打印,然后按升序打印?
- 为什么递归函数的最终输出是 5?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 如何将记忆应用于此递归函数?
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 无穷大而循环时具有递归函数
- 即使没有调用这个递归函数,它是如何工作的?
- 如何使此递归函数从给定的起始位置返回最小的整数?
- 此递归函数的每次迭代的值存储在哪里?
- 可以清除递归函数中的变量吗?
- 如何在递归函数调用中返回当前函数值
- 递归函数 c++ 的复杂性
- 这个递归函数有什么作用?运行时的复杂性是多少?
- OpenGL 中递归函数内部的时间延迟
- 类在递归函数内部实例化,c++
- 试图在递归函数内部捕获失败的分配:未处理的异常/堆栈溢出
- 函数内部的递归函数