ВУЗ:
Составители:
Рубрика:
80
Существует пять типов итераторов:
1. Итераторы ввода (input_iterator) поддерживают операции равен-
ства, разыменования и инкремента.
==, !=, *i, ++i, i++, *i++
Специальным случаем итератора ввода является istream_iterator.
2. Итераторы вывода (output_iterator) поддерживают операции ра-
зыменования, допустимые только с левой стороны присваивания, и инкре-
мента.
++i, i++, *i=t, *i++=t
Специальным случаем итератора вывода является ostream_iterator.
3. Однонаправленные итераторы (forward_iterator) поддерживают
все операции итераторов ввода/вывода
и, кроме того, позволяют без огра-
ничения применять присваивание.
==, !=, =, *i, ++i, i++, *i++
4. Двунаправленные итераторы (biderectional_iterator) обладают
всеми свойствами forward-итераторов, а также имеют дополнительную
операцию декремента (--i, i--, *i--), что позволяет им проходить контейнер
в обоих направлениях.
5. Итераторы произвольного доступа (random_access_iterator) об-
ладают всеми свойствами biderectional-итераторов, а также поддерживают
операции сравнения и адресной арифметики, то есть непосредственный
доступ
по индексу.
i+=n, i+n, i-=n, i-n, i1-i2, i[n], i1<i2, i1<=i2, i1>i2, i1>=i2
В STL также поддерживаются обратные итераторы (reverse
iterators). Обратными итераторами могут быть либо двунаправленные ите-
раторы, либо итераторы произвольного доступа, но проходящие последо-
вательность в обратном направлении.
Вдобавок к контейнерам, алгоритмам и итераторам в STL поддержи-
вается ещё несколько стандартных компонентов. Главными среди них яв-
ляются распределители памяти, предикаты и
функции сравнения.
У каждого контейнера имеется определенный для него распредели-
тель памяти (allocator), который управляет процессом выделения памяти
для контейнера.
По умолчанию распределителем памяти является объект класса allo-
cator. Можно определить собственный распределитель.
В некоторых алгоритмах и контейнерах используется функция осо-
бого типа, называемая предикатом. Предикат может быть унарным и би-
нарным. Возвращаемое значение: истина либо ложь. Точные условия по-
лучения того или иного значения определяются программистом. Тип унар-
80 Существует пять типов итераторов: 1. Итераторы ввода (input_iterator) поддерживают операции равен- ства, разыменования и инкремента. ==, !=, *i, ++i, i++, *i++ Специальным случаем итератора ввода является istream_iterator. 2. Итераторы вывода (output_iterator) поддерживают операции ра- зыменования, допустимые только с левой стороны присваивания, и инкре- мента. ++i, i++, *i=t, *i++=t Специальным случаем итератора вывода является ostream_iterator. 3. Однонаправленные итераторы (forward_iterator) поддерживают все операции итераторов ввода/вывода и, кроме того, позволяют без огра- ничения применять присваивание. ==, !=, =, *i, ++i, i++, *i++ 4. Двунаправленные итераторы (biderectional_iterator) обладают всеми свойствами forward-итераторов, а также имеют дополнительную операцию декремента (--i, i--, *i--), что позволяет им проходить контейнер в обоих направлениях. 5. Итераторы произвольного доступа (random_access_iterator) об- ладают всеми свойствами biderectional-итераторов, а также поддерживают операции сравнения и адресной арифметики, то есть непосредственный доступ по индексу. i+=n, i+n, i-=n, i-n, i1-i2, i[n], i1i2, i1>=i2 В STL также поддерживаются обратные итераторы (reverse iterators). Обратными итераторами могут быть либо двунаправленные ите- раторы, либо итераторы произвольного доступа, но проходящие последо- вательность в обратном направлении. Вдобавок к контейнерам, алгоритмам и итераторам в STL поддержи- вается ещё несколько стандартных компонентов. Главными среди них яв- ляются распределители памяти, предикаты и функции сравнения. У каждого контейнера имеется определенный для него распредели- тель памяти (allocator), который управляет процессом выделения памяти для контейнера. По умолчанию распределителем памяти является объект класса allo- cator. Можно определить собственный распределитель. В некоторых алгоритмах и контейнерах используется функция осо- бого типа, называемая предикатом. Предикат может быть унарным и би- нарным. Возвращаемое значение: истина либо ложь. Точные условия по- лучения того или иного значения определяются программистом. Тип унар-
Страницы
- « первая
- ‹ предыдущая
- …
- 77
- 78
- 79
- 80
- 81
- …
- следующая ›
- последняя »