このC++ベクトルを反復処理するにはどうすればよいですか?
vector<string> features = {"X1", "X2", "X3", "X4"};
これを試して:
for(vector<string>::const_iterator i = features.begin(); i != features.end(); ++i) {
// process i
cout << *i << " "; // this will print all the contents of *features*
}
C++ 11を使用している場合、これも有効です。
for(auto i : features) {
// process i
cout << i << " "; // this will print all the contents of *features*
}
これがコンパイルされる場合に使用しているC++ 11では、次のことが可能です。
for (string& feature : features) {
// do something with `feature`
}
機能を変更したくない場合は、string const&
(または単にstring
ですが、これにより不必要なコピーが発生します)。