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
Tworzy domyślny reverse_iterator lub reverse_iterator z iteratora podstawowego. |
Typedefs
Typ, który zawiera różnicę między dwoma reverse_iterator odwołującymi się do elementów w obrębie tego samego kontenera. |
|
Typ, który zapewnia podstawowy iterator dla reverse_iterator. |
|
Typ, który zawiera wskaźnik do elementu, do którego odnosi się reverse_iterator. |
|
Typ, który zawiera odwołanie do elementu, do którego odnosi się reverse_iterator. |
Funkcje elementów członkowskich
Odzyskuje podstawowy iterator z reverse_iterator. |
Operatory
Zwraca element, do którego odnosi się reverse_iterator. |
|
Dodaje przesunięcie do iteratora i zwraca nowy reverse_iterator odnoszący się do wstawionego elementu w nowym położeniu przesunięcia. |
|
Inkrementuje reverse_iterator do następnego elementu. |
|
Dodaje określone przesunięcie z reverse_iterator. |
|
Odejmuje przesunięcie z reverse_iterator i zwraca reverse_iterator, które odnosi się do elementu w pozycji przesunięcia. |
|
Dekrementuje reverse_iterator do poprzedniego elementu. |
|
Odejmuje określone przesunięcie od reverse_iterator. |
|
Zwraca wskaźnik do elementu, do którego odnosi się reverse_iterator. |
|
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