std::reverse_iterator — cppreference.com
Материал из cppreference.com
<metanoindex/>
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
||
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
|
|
Типы элемены |
(до 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'; }
Вывод:
См. также
| базовый класс для упрощения определения требуемых типов для простых итераторов (шаблон класса) [править] |