Итераторы в C++

Итераторы используются для доступа к элементам контейнера так же, как указатели - для доступа к элементам обычного массива. Как мы знаем, в языке c++ над указателями можно выполнять следующий набор операций: разыменование, инкремент/декремент, сложение/вычитание и сравнение. Соответственно, любой итератор реализует все эти операции или некоторое их подмножество. Кроме того, некоторые итераторы позволяют работать с объектами в режиме "только чтение" или "только запись", тогда как другие предоставляют доступ и на чтение, и на запись.

Для создание итератора необходимо написать имя контейнера <тип данных> :: iterator и имя итератора.

Например

vector ::iterator begin;

string::iterator end,cur;

Да, да. Строки это тоже контейнеры;

Теперь что мы можем делать с итераторами.

Мы можем получить элемент, на который они ссылаются:

cout<<*cur<

Здесь мы выводим элемент, на который указывает cur. Как вы наверное уже поняли, оператор * позволяет нам обращаться не к итераторы, а к элементу

Мы можем перейти к итераторы на следующий элемент или даже дальше:

cur++; // перейти  к следующему элементу

cur+=10; // <=>cur=cur+10 перейти  на 10 элементов вперед

Вот, например, вывод всего вектора на экран:

vector  test;

//как-то его заполнили

vector::iterator cur;

for (cur=test.begin();cur