У меня есть список, к которому можно получить доступ в нескольких местах. Есть некоторые случаи, когда мне нужно прокручивать список от начала до (end-n) элементов и других, где доступен весь список. У меня возникают проблемы с арифметикой итератора.C++ list итератор арифметические идеи замены
Я хочу что-то, что может сделать следующее:
int n =10;
for (list<Term>::iterator itr = final.begin(); itr != (final.end()-n); itr++) {
//
}
делает следующий псевдокод имеет смысл?
int N = myList.size() - n;
for (list<Term>::iterator itr = final.begin(),int length_reached=0; itr != (final.end() && length_reached<N; itr++,length_reached++) {
//
}
Использование rbegin для меня это не вариант, так как я хочу, чтобы первый экземпляр матча с начала списка.
Есть ли лучший способ реализации здесь?
инкремент оператора на итератора является единственным вариантом вы ... получите итератор через begin(), увеличьте его size() - n раз. – basav