私は以下で定義されるような文字列のベクトルを持っているとしましょう。別のベクトルを使ってベクトルの特定の要素を反復する
std::vector<int> indices;
indices.push_back(0);
indices.push_back(5);
indices.push_back(6);
どのように私は、例えば、アクセスのために、ベクトルindices
の要素によるベクターnames
に繰り返すことができます。
std::vector<std::string> names;
names.push_back("Zero" );
names.push_back("One" );
names.push_back("Two" );
names.push_back("Three");
names.push_back("Four" );
names.push_back("Five" );
names.push_back("Six" );
names.push_back("Seven");
names.push_back("Eight");
names.push_back("Nine" );
また、のは、私はをループに要素を定義するベクトルを持っているとしましょう名前:"Zero"
,"Five"
、および"Six"
?パターンを見つけるために何パターンか困難を持っていない要素を反復処理について、我々はパターンを見つけることができているすべての要素または要素の上に
for(vector<string>::iterator it=names.begin() ; it < names.end(); it++)
反復処理、例えば、他のすべての要素、などしかし、どのように私はそれを知っていますか?別のベクトルの反復にどのようにベクトルを使用できますか?以下のような何か:
for(vector<int>::iterator it=indices.begin() ; it < indices.end(); it++)
{
names.at(indices.at(it))
...
}
どうやら、 'オート'C + 11'では問題があります。コンパイラは 'C++ 11での自動変更の意味について不平を言っています。それを取り除いてください。 – AFP
これは 'C++ 14'に特有のものです。 'C++ 11 'を使用している場合は、' auto'を特定の型に置き換える必要があります。 – foo