На этом шаге мы приведем категории итераторов.
Итератором называется объект, предназначенный для последовательного перебора элементов. Перебор осуществляется через единый интерфейс, основой для которого стал интерфейс обычных указателей (общие сведения об итераторах приводятся на 92 шаге). Итераторы подчиняются принципу чистой абстракции, то есть любой объект, который ведет себя как итератор, является итератором, Тем не менее итераторы обладают разными свойствами; иногда это очень существенно, поскольку для работы некоторых алгоритмов необходимы особые свойства итераторов. Например, для алгоритмов сортировки нужны итераторы произвольного доступа, поскольку без них эффективность алгоритмов была бы слишком низкой. Из-за этого итераторы делятся на несколько категорий (рисунок 1).
Рис.1. Категории итераторов
В таблице 1 приведены краткие характеристики этих категорий.
Категория | Возможности | Поддержка |
---|---|---|
Итератор ввода | Чтение в прямом направлении | Потоковый итератор ввода |
Итератор вывода | Запись в прямом направлении | Потоковый итератор вывода, итератор вставки |
Прямой итератор | Чтение и запись в прямом направлении | |
Двунаправленный итератор | Чтение и запись в прямом и обратном направлениях | Списки, множества, мультимножества, отображения, мультиотображения |
Итератор произвольного доступа | Чтение и запись с произвольным доступом | Вектор, дек, строка, массив |
На следующем шаге мы рассмотрим итераторы ввода.