有没有可能在迭代循环中使用另一个迭代器的方法?

时间:2018-10-07 17:37:59

标签: c++ vector

我在这里有一个向量,现在我需要使用另一个迭代器来窥视该向量,并查看前瞻是字符串“ assign”还是整数值。

bool Val(vector<struct token>token_list){
    vector<struct token>::iterator iter = token_list.begin();
    vector<struct token>::iterator peeker = token_list.begin(); 
    for(iter; iter!=token_list.end(); ++iter){
        if(iter->type == "id"){
            //peeker+=1;
            cout<<peeker->type<<endl;  //check the type: assign / inum      
        }
    }
}

但是似乎没有运气,是否有可能在迭代循环中使用另一个迭代器?非常感谢。 ;(

1 个答案:

答案 0 :(得分:1)

如果要让迭代器在给定的迭代器之后引用该元素,则只需创建它即可:

for(auto iter = collection.cbegin(), end = collection.cend(); end != iter; ++iter) {
  ...
  auto peeker = iter + 1;
  ...
}