この 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
ですが、不要なコピーが発生します)。