このC++ベクタをどのように反復処理しますか?使用しているC++文字列のベクトルをどのように反復するのですか?
vector<string> features = {"X1", "X2", "X3", "X4"};
このC++ベクタをどのように反復処理しますか?使用しているC++文字列のベクトルをどのように反復するのですか?
vector<string> features = {"X1", "X2", "X3", "X4"};
C++ 11、これはコンパイルする場合、以下のことができます:
for (string& feature : features) {
// do something with `feature`
}
This is the range-based for
loop.
この機能を変異させたくない場合は、 string const&
(またはちょうどstring
ですが、不要なコピーが発生します)と宣言することもできます。
このお試しください:ええ、
for(auto i : features) {
// process i
cout << i << " "; // this will print all the contents of *features*
}
おそらく、あなたは '++ i'を意味し、' i ++ 'を意味しません。 –
実際は同じことです。 –
[いいえ、それはありません!](http://stackoverflow.com/questions/24901/is-there-a-performance-difference-between-i--i-in-c) 'iterator'だけではなく、' const_iterator'です。これはボイラープレートのコードです。眠ったときに尋ねられたとしても、それを正しく取得するには十分によく学ぶべきです。 –
見つけることが1つの非常に簡単:あなたがC++ 11を使用している場合、これはあまりにも合法である
を。 –