2

重複の可能性:
bool値(falseおよびtrue)に対して`for`ループを作成する方法

bool flag同じタスクを最初にtrue、2番目にfalseで2回実行したいと思います。それを行うためのエレガントな方法はありますか(おそらくループを使用して)?

私の考えは次のようなことをすることでしたが、これはあまりにも複雑です。

bool flag = true;
for(int i = 0; i < 2; ++i, flag = !flag)
{
    // ...
}
4

4 に答える 4

4

Thomasの回答で関数に多くのパラメーターを渡す必要があると言ったので、ラムダを考えてみましょう。

int param1;
bool param2;
...

auto doWork = [&](bool flag){ //<- capture all local variables by reference
    ... do work with params ...
};

doWork(true);
doWork(false);

このようにして、作業コードをカプセル化し、面倒なパラメーターを渡す必要がなく、コードを2回呼び出していることを明確にできます。

于 2012-12-26T15:19:04.003 に答える