Пространства имён
Варианты
Действия

std::reverse_iterator

Материал из cppreference.com
< cpp‎ | iterator

 
 
Библиотека итераторов
Концепты итераторов
Примитивы итераторов
Концепты алгоритмов и утилиты
Косвенно вызываемые концепты
Общие требования к алгоритмам
Утилиты
(C++20)
Адаптеры итераторов
Потоковые итераторы
Точки настройки итераторов
Операции итераторов
Доступ к диапазону
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
std::reverse_iterator
Член функций
Оригинал:
Member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Не являющиеся членами функций
Оригинал:
Non-member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
Определено в заголовочном файле <iterator>
template<class Iterator >

class reverse_iterator :publicstd::iterator<
                           typenamestd::iterator_traits<Iterator>::iterator_category,
                           typenamestd::iterator_traits<Iterator>::value_type,
                           typenamestd::iterator_traits<Iterator>::difference_type,
                           typenamestd::iterator_traits<Iterator>::pointer,

                           typenamestd::iterator_traits<Iterator>::reference>
std::reverse_iterator это итератор, адаптер, который меняет направление данного итератора. Иными словами, при обеспечении двунаправленный итератор, std::reverse_iterator создает новый итератор, который перемещается от конца к началу последовательности, определенной основной двунаправленный итератор.
Оригинал:
std::reverse_iterator is an iterator adaptor that reverses the direction of a given iterator. In other words, when provided with a bidirectional iterator, std::reverse_iterator produces a new iterator that moves from the end to the beginning of the sequence defined by the underlying bidirectional iterator.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Для обратного r итератора построена из итератора i, отношения &*r ==&*(i-1) всегда является истиной, таким образом, обратный итератор построены из одного пришедшего к концу разыменовывает итератор на последний элемент в последовательности.
Оригинал:
For a reverse iterator r constructed from an iterator i, the relationship &*r ==&*(i-1) is always true; thus a reverse iterator constructed from a one-past-the-end iterator dereferences to the last element in a sequence.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Это итератора возвращается функций-членов rbegin() и rend() стандартных контейнеров библиотеки.
Оригинал:
This is the iterator returned by member functions rbegin() and rend() of the standard library containers.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править]Типы-члены

Тип члена Определение
iterator_typeIterator
difference_typestd::iterator_traits<Iterator>::difference_type
pointerstd::iterator_traits<Iterator>::pointer
referencestd::iterator_traits<Iterator>::reference

[править]Функции-члены

создает новый адаптер итератора
Оригинал:
constructs a new iterator adaptor
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент)[править]
назначает другого итератора
Оригинал:
assigns another iterator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент)[править]
доступ к основной итератор
Оригинал:
accesses the underlying iterator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-элемент)[править]
получает доступ к элементу по указателю
(public функция-элемент)[править]
обращается к элементу по индексу
(public функция-элемент)[править]
увеличивает или уменьшает итератор
(public функция-элемент)[править]

[править]Член объектов

Имя пользователя
Оригинал:
Member name
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Definition
current(защищены)
копию итератора базу ()
Оригинал:
a copy of the base() iterator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
В дополнение к текущей стоимости базового итератора, типичная реализация std::reverse_iterator имеет уменьшается копию основного итератора, который используется в разыменования.
Оригинал:
In addition to the current value of the underlying iterator, a typical implementation of std::reverse_iterator holds a decremented copy of the underlying iterator, which is used in dereferencing.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править]Функции, не являющиеся членами

сравнивает базовые итераторы
(шаблон функции)[править]
перемещает итератор
Оригинал:
advances the iterator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции)[править]
вычисляет расстояние между двумя адаптерами итераторов
Оригинал:
computes the distance between two iterator adaptors
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции)[править]

[править]Типы элементы

Тип элемент Определение
iterator_category std::iterator_traits<Iterator>::iterator_category
value_type std::iterator_traits<Iterator>::value_type
difference_type std::iterator_traits<Iterator>::difference_type
pointer std::iterator_traits<Iterator>::pointer
reference std::iterator_traits<Iterator>::reference

Типы элемены iterator_category, value_type, difference_type, pointer и reference должны быть получены путём наследования от std::iterator<std::iterator_traits<Iterator>::iterator_category
,  std::iterator_traits<Iterator>::value_type
,  std::iterator_traits<Iterator>::difference_type
,  std::iterator_traits<Iterator>::pointer
,  std::iterator_traits<Iterator>::reference
>
.

(до C++17)

[править]Пример

#include <iostream>#include <string>#include <iterator>   int main(){std::string s ="Hello, world"; std::reverse_iterator<std::string::iterator> r = s.rbegin(); r[7]='O';// replaces 'o' with 'O' r +=7;// iterator now points at 'O'std::string rev(r, s.rend());std::cout<< rev <<'\n';}

Вывод:

OlleH

[править]См. также

(устарело в C++17)
базовый класс для упрощения определения требуемых типов для простых итераторов
(шаблон класса)[править]
close