C++11 では、次のようにいくつかのコンテナーを反復処理できます。
for(auto i : vec){
std::cout << i << std::endl;
}
しかし、これは不必要に-不必要に、の値を出力するだけでよいのでvec
-のコピーを作成することを知っているvec
ので、代わりに次のことができます:
for(auto &i : vec){
std::cout << i << std::endl;
}
vec
しかし、の値が決して変更されず、const-correctness に準拠していることを確認したいので、次のことができます。
for(const auto &i : vec){
std::cout << i << std::endl;
}
したがって、私の質問は次のとおりです。あるコンテナーの値のみを確認する必要がある場合、 ( EDIT : の各要素)const auto &i
の余分なコピーを持たないことで効率が向上するため、最後のループ ( ) が常に優先されるのではないでしょうか?vec
私は開発中のプログラムを持っていますが、この変更を全体的に行うことを検討しています。これは、効率が重要であるためです (最初に C++ を使用している理由)。