27 Iterators library [iterators]

27.2 Iterator requirements [iterator.requirements]

27.2.6 Bidirectional iterators [bidirectional.iterators]

Тип класса или указателя X удовлетворяет требованиям двунаправленного итератора, если, помимо удовлетворения требований для прямых итераторов, допустимы следующие выражения, как показано в таблице 98.

Таблица 98 - Требования к двунаправленному итератору (в дополнение к прямому итератору)
ВыражениеТип возвратаОперативныйУтверждение / примечание
семантикадо / после состояния
--r X& Requires: существует s такое что r == ++s.
Postconditions: r разыменуемо.
--(++r) == r.
--r == --s подразумевает r == s.
&r == &--r.
r-- конвертируемый в const X& { X tmp = r;
--r;
return tmp; }
*r-- reference

[ Note: Двунаправленные итераторы позволяют алгоритмам перемещать итераторы вперед и назад. ]end note