这是一个c ++编码问题。
if (condition)
initialize arg2;
for loop
{
if (condition)
f(arg1, arg2[loop_index]);
else
f(arg1, 0);
}
如何将if()
与f()
仅召唤一次?
arg2可能消耗大量内存,如果条件为假,我们不需要初始化它。
任何帮助将不胜感激。
答案 0 :(得分:2)
if (condition)
initialize arg2;
for loop
{
f(arg1, condition?arg2[loop_index]:0);
}
答案 1 :(得分:1)
您可以轻松地将分支取出循环,并在外部分支中有两个循环:
if (condition) {
initialize arg2;
for loop {
f(arg1, arg2[loop_index]);
}
} else {
for loop {
f(arg1, 0);
}
}
答案 2 :(得分: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
}