假设我有一个如下定义的字符串向量。使用另一个向量遍历一个向量的特定元素
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