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

         

Итераторы произвольного доступа (Random access iterators)


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

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


r += n X& { Distance m = n;
if(m >= 0)
  while(m--) ++r;
else
   while(m++) --r;
return r; }
.
a + n
n + a
X { X tmp = a;
return tmp += n; }
a + n == n + a.
r -= n X& return r += -n; .
a - n X { X tmp = a;
return tmp -= n; }
.
b - a Distance . до: существует значение n типа Distance такое,
что a + n = b.
b == a + (b - a).
a[n] обратимый в T *(a + n) .
a < b обратимый в bool b - a > 0 - это отношение полного упорядочения
a > b обратимый в bool b < a > - это отношение полного упорядочения, противоположное .
a >= b обратимый в bool !(a < b) .
a обратимый в bool !(a > b) .


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