假設我有一個如下定義的字符串向量。使用另一個向量遍歷一個向量的特定元素
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" );
而且,讓我們說我有過哪些元素定義了環矢量:
std::vector<int> indices;
indices.push_back(0);
indices.push_back(5);
indices.push_back(6);
我如何可以遍歷的矢量names
根據矢量indices
的元素,例如訪問名稱:"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