【发布时间】:2016-08-20 17:17:39
【问题描述】:
假设我有一个如下定义的字符串向量。
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 );
如何根据向量indices 的元素对向量names 进行迭代,例如访问名称:"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++ arrays loops vector iterator