reverse_iterator-Klasse
Die Vorlagenklasse ist ein Iteratoradapter, der ein Reverse-Iterator-Objekt beschreibt, das sich wie ein Random-Access- oder ein bidirektionaler Iterator verhält, nur umgekehrt. Er ermöglicht es, einen Bereich rückwärts zu durchlaufen.
template <class RandomIterator>
class reverse_iterator
Parameter
- RandomIterator
Der Typ, der den Iterator darstellt, der angepasst werden muss, um rückwärts zu funktionieren.
Hinweise
Vorhandene Standardvorlagenbibliothekscontainer definieren auch die Typen reverse_iterator und const_reverse_iterator und verfügen über die Memberfunktionen rbegin und rend, die Reverse-Iteratoren zurückgeben. Diese Iteratoren verfügen über Semantik zum Überschreiben. Der reverse_iterator-Adapter ergänzt diese Funktionalität durch Einfügesemantik und kann außerdem mit Streams verwendet werden.
Die reverse_iterator-Objekte, die einen bidirektionalen Iterator erfordern, dürfen keine der Memberfunktionen operator+=, operator+, operator-=, operator- oder operator[] aufrufen, die nur mit Random-Access-Iteratoren verwendet werden dürfen.
Wenn der Bereich eines Iterators [_First, _Last) ist, gibt die eckige Klammer links den Einschluss von _First und die Klammer rechts den Einschluss von Elementen bis zu __Left an, ohne jedoch _Left selbst einzubeziehen. Die gleichen Elemente sind in der umgekehrten Sequenz [rev – _First, rev – _Left) enthalten. Wenn _Left ein Element hinter dem Ende einer Sequenz ist, dann zeigt das erste Element rev – _First in der umgekehrten Sequenz auf *(_Left – 1 ). Die Identität, die alle umgekehrten Iteratoren auf die zugrunde liegenden Iteratoren bezieht:
&*(reverse_iterator ( i ) ) == &*( i – 1 ).
In der Praxis bedeutet dies, dass in der umgekehrten Sequenz das reverse_iterator-Objekt auf das Element verweist, das eine Position hinter dem Element (rechts davon) liegt, auf das der Iterator in der ursprünglichen Sequenz verwiesen hat. Wenn ein Iterator das Element 6 in der Sequenz adressierte (2, 4, 6, 8), dann adressiert reverse_iterator das Element 4 in der umgekehrten Sequenz (8, 6, 4, 2).
Konstruktoren
Erstellt aus einem zugrunde liegenden Iterator einen standardmäßigen reverse_iterator oder reverse_iterator. |
Typedefs
Ein Typ, mit dem der Unterschied zwischen zwei reverse_iteratoren bereitgestellt wird, die auf Elemente innerhalb desselben Containers verweisen. |
|
Ein Typ, der einen zugrunde liegenden Iterator für einen reverse_iterator bereitstellt. |
|
Ein Typ, mit dem ein Zeiger auf ein Element bereitgestellt wird, die von reverse_iterator adressiert werden. |
|
Ein Typ, mit dem ein Verweis auf ein Element bereitgestellt wird, die von reverse_iterator adressiert werden. |
Memberfunktionen
Stellt den zugrunde liegenden Iterator aus reverse_iterator wieder her. |
Operators
Gibt das Element zurück, das ein reverse_iterator adressiert. |
|
Fügt einen Offset zu einem Iterator hinzu und gibt den neuen reverse_iterator zurück, der auf das eingefügte Element an der neuen Offsetposition zeigt. |
|
Erhöht reverse_iterator zum nächsten Element. |
|
Fügt einen angegebenen Offset aus einem reverse_iterator hinzu. |
|
Subtrahiert einen Offset von einem reverse_iterator und gibt einen reverse_iterator zurück, der das Element an die Offsetposition adressiert. |
|
Verringert reverse_iterator zum vorherigen Element. |
|
Subtrahiert einen angegebenen Offset von einem reverse_iterator. |
|
Gibt einen Zeiger auf das Element zurück, das von reverse_iterator adressiert wird. |
|
Gibt einen Verweis auf ein Elementoffset aus dem Element zurück, das von reverse_iterator mithilfe der angegebenen Anzahl von Positionen adressiert wird. |
Anforderungen
Header: <Iterator>
Namespace: std