、vc,
1は用の範囲でベクトルを反復処理することができますベクトル上のイテレータの代わりにループの範囲を使用する必要がありますか?</p> <pre><code>for (auto c : vc) std::cout << c; </code></pre> <p>イテレータで:
for (auto it = vc.cbegin(); it != vc.cend(); ++it)
std::cout << *it;
他の上に一つの方法を使用するための機能な理由があり、それともこれは単なるスタイルの問題ですか?
範囲ベースのforループで 'auto'を使うとベクトル要素の* copy *が得られることに注意してください。オブジェクトのコピーが高価な場合は、望ましくないパフォーマンスの問題が生じる可能性があります。イテレータを使用すると、const参照が返されるので、コピーはここでは発生しません。範囲ベースのforのリファレンスを取得する方法は 'for(const auto&c:vc)... 'です。 –