2

私は現在、多くのことを繰り返す必要がある大きなコンテナで作業しています。次のうち、より良いスタイルと見なされるのはどれですか?

a) 大きなループ:

for (container::iterator it = myContainer.begin(); it < myContainer.end(); ++it) {
    // do thing a with *it

    // do thing d with *it

    // do thing c with *it

    // do thing b with *it
}

b) 小さなループ:

for (container::iterator it = myContainer.begin(); it < myContainer.end(); ++it) {
    // do thing a with *it
}

for (container::iterator it = myContainer.begin(); it < myContainer.end(); ++it) {
    // do thing b with *it
}

for (container::iterator it = myContainer.begin(); it < myContainer.end(); ++it) {
    // do thing c with *it
}

for (container::iterator it = myContainer.begin(); it < myContainer.end(); ++it) {
    // do thing d with *it
}

a) は不格好になりやすく、理解しにくくなるため、b) は読みやすいと思います。しかし、a) はより速く実行されると思います。では、どちらがよりスタイルが良いでしょうか?myContainer には最大 10,000 個の要素が含まれ、この手順を繰り返す必要があるため、パフォーマンスが重要になります。

4

2 に答える 2

1

シングルループを使用する必要があります。ループ内に含まれるコードを個別の関数にリファクタリングできます。

大きなループを 4 つの小さなループに分割するのは効率が悪く、余分な操作が追加されます。

于 2012-06-22T14:48:12.383 に答える