2

C++ で次のループを考えてみましょう。ここで、A はベクトルまたは を使用する他のコンテナー.size()です。

for(int n=0; n < A.size(); ++n)
    cout << A[n];

以下のループと同等だと思います(少なくともこの場合、完全に同等ではない場合、理由を理解するのを手伝ってもらえますか?その反例が見つかりません)

for(int n=-1; ++n < A.size(); )
    cout << A[n];

最初のループを使用する方が 2 番目のループよりも優れていますか? どこでも最初のループを使用している人を見かけますが、2 番目のループは見たことがありません。2番目の例のように誰もこれをしないのはなぜですか? これを行わないことへの反対の兆候はありますか? どちらの場合も、nコードの 2 行目を実行するときの値は同じであり、ループを終了するときも同じ値になります。2 番目のループで問題が発生する可能性はありますか?

私にとっては、2 番目の方がさらに単純に思えます。

4

2 に答える 2

7

最初のものは慣習的であるため、より優れています。2 つ目は、将来の読者が頭をかきむしり、あなたの名前をののしることになります。

于 2013-06-09T09:13:39.977 に答える