C++11 で、ベクトルに対して範囲ベースの for ループを使用すると、反復順序が保証されますか?
つまり、次のコード ブロックは同じ出力を生成することが保証されていますか?
vector<T> output;
vector<U> V;
for( auto v: V) output.push_back(f(v));
対
for(int i =0; i < V.size(); ++i) output.push_back(f(V[i]));
そうでない場合は、、などvector
でしょうかmap
?
ベストアンサー1
はい、2つのコードは同じ動作をすることが保証されています。標準へのリンクはありませんが、見ることができます。ここ引用します:You can read that as "for all x in v" going through starting with v.begin() and iterating to v.end().