Sdílet prostřednictvím


reverse_iterator – třída

Třída šablony je adaptér iterátoru popisující objekt zpětného iterátoru, který se chová jako obousměrný iterátor nebo iterátor s náhodným přístupem, pouze obráceně.Umožňuje zpětné procházení rozsahu.

template <class RandomIterator>
class reverse_iterator

Parametry

  • RandomIterator
    Typ představující iterátor, který má být adaptován tak, aby pracoval obráceně.

Poznámky

Existující kontejnery standardní knihovny šablon také definují typy reverse_iterator a const_reverse_iterator a mají členské funkce rbegin a rend, které vracejí obrácené iterátory.Tyto iterátory mají sémantiku přepisu.Adaptér reverse_iterator tuto funkci doplňuje, protože nabízí sémantiku vložení a lze jej také použít s toky.

Entity reverse_iterator, které vyžadují obousměrný iterátor, nesmějí volat žádné členské funkce operator+=, operator+, operator-=, operator- nebo operator[], které lze použít pouze s iterátory s náhodným přístupem.

Pokud je rozsah iterátoru [_First, _Last), kde hranatá závorka vlevo udává zahrnutí k _First a závorka vpravo udává zahrnutí prvků až po _Left , ale kromě samotného prvku _Left .Stejné prvky jsou zahrnuty v obrácené sekvenci [rev – _First, rev – _Left), takže pokud _Left je první za posledním prvkem v sekvenci, pak první prvek rev – _First v obrácené sekvenci ukazuje na *(_Left – 1 ).Identita, která spojuje všechny obrácené iterátory s jejich základním iterátorem, je:

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

V praxi to znamená, že v obrácené sekvenci bude iterátor reverse_iterator ukazovat na prvek o jednu pozici za prvkem (vpravo), na který iterátor ukazoval v původní sekvenci.Pokud iterátor adresoval prvek 6 v sekvenci (2, 4, 6, 8), reverse_iterator bude adresovat prvek 4 v obrácené sekvenci (8, 6, 4, 2).

Konstruktory

reverse_iterator

Vytvoří výchozí reverse_iterator nebo reverse_iterator z podkladové iterace.

Typedefs

difference_type

Typ, který obsahuje rozdíl mezi dvěma reverse_iterator, které odkazují na prvky v rámci stejného kontejneru.

iterator_type

Typ, který poskytuje základní iterátor pro reverse_iterator.

ukazatel

Typ, který poskytuje ukazatel na prvek řešený třídou reverse_iterator.

reference

Typ, který poskytuje odkaz na prvek řešený třídou reverse_iterator.

Členské funkce

base

Obnoví základní iterátor z reverse_iterator.

Operátory

operator*

Vrátí prvek, na který odkazuje reverse_iterator.

operator+

Přidá posun do iterátoru a vrátí nový reverse_iterator adresující vložený prvek na nové pozici posunu.

operator++

Zvýší reverse_iterator na další prvek.

operator+=

Přidá zadaný posun z reverse_iterator.

operator-

Odečte posun od reverse_iterator a vrátí reverse_iterator adresující prvek v posunuté pozici.

operator--

Sníží reverse_iterator na předchozí prvek.

operator-=

Odečte zadaný posun od reverse_iterator.

operator->

Vrací ukazatel na prvek odkazovaný reverse_iterator.

operátor[]

Vrátí odkaz na posun prvku z prvku odkazovaného reverse_iterator o určený počet pozic.

Požadavky

Hlavička: <iterator>

Obor názvů: std

Viz také

Referenční dokumentace

<iterator>

Bezpečný přístup z více vláken ve standardní knihovně C++

Standardní knihovna šablon