Руководство по стандартной библиотеке шаблонов STL

         

Последовательные итераторы (Forward iterators)


Класс или встроенный тип X удовлетворяет требованиям последовательного итератора, если справедливы следующие выражения:

Таблица 4. Требования последовательного итератора
выражение возвращаемый тип семантика исполнения утверждение/примечание
состояние до/после


X u; . . примечание: u может иметь исключительное значение.
примечание: предполагается деструктор.
X() . . примечание: X() может быть исключительным.
X(a); . . a == X(a)
X u(a);
X u = a;
. X u; u = a; после: u == a.
a == b обратимый в bool . == - это отношение эквивалентности.
a != b обратимый в bool !(a == b) .
r = a X& . после: r == a.
*a обратимый в T . до: a - разыменовываемое.
a == b подразумевает *a == *b.
Если X - модифицируемый, то *a = t - допустимо.
++r X& . до: r - разыменовываемое.
после: r - разыменовываемое или r - законечное.
r == s и r - разыменовываемое подразумевает ++r == ++s.
&r == &++r.
r++ X { X tmp = r;
++ r;
return tmp; }
.

    ПРИМЕЧАНИЕ. Тот факт, что r == s подразумевает ++r == ++s (что неверно для итераторов ввода и вывода) и что удалено ограничение на число присваиваний через итератор (которое применяется к итераторам вывода), позволяет использование многопроходных однонаправленных алгоритмов с последовательными итераторами.

Содержание раздела