◐ Shell
clean mode source ↗

std::reverse_iterator — cppreference.com

Материал из cppreference.com

<metanoindex/>

<tbody> </tbody>

Определено в заголовочном файле <iterator>

template< class Iterator > class reverse_iterator : public std::iterator< typename std::iterator_traits<Iterator>::iterator_category, typename std::iterator_traits<Iterator>::value_type, typename std::iterator_traits<Iterator>::difference_type, typename std::iterator_traits<Iterator>::pointer, typename std::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_type Iterator
difference_type std::iterator_traits<Iterator>::difference_type
pointer std::iterator_traits<Iterator>::pointer
reference std::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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Функции, не являющиеся членами

Типы элементы

Тип элемент Определение
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';
}

Вывод:

См. также

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