Udostępnij za pośrednictwem


reverse_iterator — Klasa

Klasa szablonu to adapter iteratora, opisujący obiekt odwróconego iteratora, który zachowuje się jak iterator dostępu swobodnego lub dwukierunkowy, tylko że w odwrotnej kolejności.Umożliwia przechodzenie do tyłu zakresu.

template <class RandomIterator>
class reverse_iterator

Parametry

  • RandomIterator
    Typ reprezentujący iterator, który ma zostać dostosowany do pracy w odwrotnej kolejności.

Uwagi

Kontenery standardowej biblioteki szablonów także definiują typy reverse_iterator i const_reverse_iterator oraz mają funkcje elementów członkowskich rbegin i rend które zwracają iteratory wsteczne.Te iteratory mają semantykę nadpisywania.Adapter reverse_iterator stanowi uzupełnienie tej funkcji, ponieważ oferuje semantykę wstawiania i można go również używać ze strumieniami.

Iteratory reverse_iterator, które wymagają iteratora dwukierunkowego, nie mogą wywoływać żadnych funkcji elementów członkowskich operator+=, operator+, operator-=, operator- lub operator[], które mogą być używane tylko z iteratorami dostępu swobodnego.

Jeśli zakres iteratora to [_First, _Last), gdzie nawias kwadratowy po lewej stronie oznacza umieszczenie na _First, a nawias po prawej stronie wskazuje dołączenie elementów do _Left, ale z wyłączeniem samej _Left.Te same elementy są dołączone w odwróconej sekwencji [rev – _First, rev – _Left), tak że jeśli _Left jest pierwszym elementem po końcu w sekwencji, wówczas pierwszy element rev – _First w odwróconej sekwencji wskazuje na *(_Left – 1).Tożsamość, która odnosi wszystkie iteratory odwrócone do ich iteratorów podstawowych, to:

&*(reverse_iterator ( i ) ) == &*( i – 1 ).

W praktyce oznacza to, że w odwróconej sekwencji reverse_iterator będzie się odnosił do elementu w jednej pozycji poza elementem (z jego prawej strony), do którego odnosił się iterator w oryginalnej sekwencji.Jeśli więc iterator odnosił się do elementu 6 w sekwencji (2, 4, 6, 8), to reverse_iterator będzie się odnosił do elementu 4 w odwróconej sekwencji (8, 6, 4, 2).

Konstruktory

reverse_iterator

Tworzy domyślny reverse_iterator lub reverse_iterator z iteratora podstawowego.

Typedefs

difference_type

Typ, który zawiera różnicę między dwoma reverse_iterator odwołującymi się do elementów w obrębie tego samego kontenera.

iterator_type

Typ, który zapewnia podstawowy iterator dla reverse_iterator.

pointer

Typ, który zawiera wskaźnik do elementu, do którego odnosi się reverse_iterator.

reference

Typ, który zawiera odwołanie do elementu, do którego odnosi się reverse_iterator.

Funkcje elementów członkowskich

base

Odzyskuje podstawowy iterator z reverse_iterator.

Operatory

operator*

Zwraca element, do którego odnosi się reverse_iterator.

operator+

Dodaje przesunięcie do iteratora i zwraca nowy reverse_iterator odnoszący się do wstawionego elementu w nowym położeniu przesunięcia.

operator++

Inkrementuje reverse_iterator do następnego elementu.

operator+=

Dodaje określone przesunięcie z reverse_iterator.

operator-

Odejmuje przesunięcie z reverse_iterator i zwraca reverse_iterator, które odnosi się do elementu w pozycji przesunięcia.

operator--

Dekrementuje reverse_iterator do poprzedniego elementu.

operator-=

Odejmuje określone przesunięcie od reverse_iterator.

operator->

Zwraca wskaźnik do elementu, do którego odnosi się reverse_iterator.

operator[]

Zwraca odwołanie do przesunięcia elementu z elementu, do którego odnosi się reverse_iterator, o określoną liczbę pozycji.

Wymagania

Nagłówek: <iterator>

Przestrzeń nazw: std

Zobacz też

Informacje

<iterator>

Bezpieczeństwo wątku w standardowej bibliotece C++

Standardowa biblioteka szablonów