Есть ли возможный способ иметь другой итератор в цикле итераций? - PullRequest
0 голосов
/ 07 октября 2018

У меня здесь есть вектор, и теперь мне нужно использовать другой итератор, чтобы посмотреть вектор и посмотреть, является ли предвидение строкой "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 голосов
/ 07 октября 2018

Если вам нужен итератор, который ссылается на элемент после данного итератора, просто создайте его:

for(auto iter = collection.cbegin(), end = collection.cend(); end != iter; ++iter) {
  ...
  auto peeker = iter + 1;
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...