Итератор — это класс, который позволяет тебе проходить по объектам, которые хранит контейнерный класс. Работает он как указатель, давая последовательный доступ к элементам контейнера без нарушения ограничений инкапсуляции.
Итераторы дают тебе доступ по одному элементу за раз к содержимому контейнера, при этом скрывая детали реализации базовой структуры данных. Такая абстракция позволяет одинаково работать с разными типами контейнеров.
В C++ выделяют пять категорий в зависимости от функциональности:
Порядок доступа зависит от типа контейнера:
Итератор выдаёт тебе либо следующий элемент, либо контрольное значение, которое говорит, что обход закончился. Это даёт чистый и стандартизированный способ работать с содержимым контейнера.
Input iterators и output iterators оба могут читать и писать элементы контейнера, но input iterators оптимизированы для чтения, а output iterators — для записи.
Новый — ещё не проверен сообществом
Вы