这是一个 c++ 编码问题。
if (condition)
initialize arg2;
for loop
{
if (condition)
f(arg1, arg2[loop_index]);
else
f(arg1, 0);
}
如何结合只if()调用f()一次?
arg2 可能会消耗大量内存,如果条件为假,我们不需要对其进行初始化。
任何帮助将不胜感激。
这是一个 c++ 编码问题。
if (condition)
initialize arg2;
for loop
{
if (condition)
f(arg1, arg2[loop_index]);
else
f(arg1, 0);
}
如何结合只if()调用f()一次?
arg2 可能会消耗大量内存,如果条件为假,我们不需要对其进行初始化。
任何帮助将不胜感激。
if (condition)
initialize arg2;
for loop
{
f(arg1, condition?arg2[loop_index]:0);
}
您可以轻松地将分支从循环中取出,并在外部分支中有两个循环:
if (condition) {
initialize arg2;
for loop {
f(arg1, arg2[loop_index]);
}
} else {
for loop {
f(arg1, 0);
}
}
最简单的是,如果执行 1 次,则将变量表示从 0 到 1 的标志。将标志设为全局变量。
int flag=0;
main(){//code}
if (condition&&flag==0)
f(arg1, arg2[loop_index]);
else
f(arg1, 0);
在 f() 内
f(){
flag=1;
//rest code
}