Freigeben über


<iterator>

Definiert die Iteratorprimitive, die vordefinierten Iteratoren und die Streamiteratoren sowie einige unterstützende Vorlagen.Die vordefinierten Iteratoreinschliessungseinfügungs- und -rückseitenadapter.Es gibt drei Klassen Einfügungsiteratoradapter: Vordergrund, aufrufen und Allgemein.Sie stellen Einfügungssemantik anstatt die überschreibenssemantik bereit, die die Containermemberfunktionsiteratoren bereitstellen.

#include <iterator>

Hinweise

Iteratoren sind eine Verallgemeinerung von Zeigern und extrahieren von ihren Anforderungen auf eine Weise, die C++-Programm mit unterschiedlichen Strukturen der Daten in einer einheitlichen Art zulässig.Iteratoren dienen als Vermittler zwischen Containern und generischen Algorithmen auf.Anstatt die auf bestimmten Datentypen, werden Algorithmen definiert, um einen Bereich an auszuführen, der durch einen Typ Iterator angegeben wird.Eine Datenstruktur, die den Anforderungen des Iterators erfüllt ist, wird durch den Algorithmus bearbeitet werden.Es gibt fünf Typen oder Kategorien Iterator, jeder mit einem eigenen Satz von Anforderungen und resultierende Funktionen:

  • Ausgabe: vorwärts das Verschieben, Werte speichern jedoch möglicherweise abruft, sofern durch ostream und Einfügungsprogramm.

  • Eingabe: vorwärts das Verschieben, rufen Sie Werte jedoch möglicherweise speichert, sofern durch istream.

  • vorwärts: vorwärts das Verschieben, Werte speichern und abgerufen werden.

  • Bidirektional: das Vorwärts- und Rückwärtsnavigation Verschieben, Werte speichern und abrufen kann, sofern der Liste, Satz, Multiset, Zuordnung und Multimap.

  • Wahlfreier Zugriff: die Elemente, die in beliebiger Reihenfolge zugegriffen werden, Werte speichern und abrufen kann, sofern durch Vektor, Doppelschlange, Zeichenfolge und Array.

Iteratoren, die größere Anforderungen und so leistungsstarkeren Zugriff auf Elemente verfügen, werden anstelle der Iteratoren mit weniger Anforderungen verwendet werden.Wenn beispielsweise ein Vorwärtsiterator für aufgerufen wird, dann ein Iterator mit wahlfreier Zugriff können Sie stattdessen verwendet.

k3tf6509.collapse_all(de-de,VS.110).gifFunktionen

Fortschritt

Inkrementiert einen Iterator durch eine angegebene Anzahl von Positionen.

back_inserter

Erstellt einen Iterator, der Einsatzelemente an der umgekehrten eines bestimmten Containers kann.

begin

Ruft einen Iterator zum ersten Element eines angegebenen Container ab.

Abstand

Bestimmt die Anzahl der Inkrementen zwischen den Positionen, die von zwei Iteratoren behandelt werden.

end

Ruft einen Iterator an das Element ab, das dem letzten Element im angegebenen Container folgt.

front_inserter

Erstellt einen Iterator, der sich in Einsatzelemente eines bestimmten Containers kann.

Einfügungsprogramm

Ein Iteratoradapter, der ein neues Element einem Container an einem angegebenen Punkt der Einfügung hinzugefügt wird.

make_move_iterator

Gibt einen Verschiebungsiterator zurück, der den bereitgestellten Iterator wie der gespeicherten niedriger Iterator enthält.

next

Führt eine oft durch und gibt die neue Iteratorposition zurück.

prev

Führt in umgekehrter Reihenfolge ein oft durch und gibt die neue Iteratorposition zurück.

k3tf6509.collapse_all(de-de,VS.110).gifOperatoren

Operator! =

Tests, wenn das Iteratorobjekt auf der linken Seite des Operators nicht gleich dem Iteratorobjekt auf der rechten Seite ist.

operator==

Tests, wenn das Iteratorobjekt auf der linken Seite des Operators gleich dem Iteratorobjekt auf der rechten Seite ist.

operator<

Tests, wenn das Iteratorobjekt auf der linken Seite des Operators kleiner ist, als das Iteratorobjekt auf der rechten Seite.

operator<=

Tests, wenn das Iteratorobjekt auf der linken Seite des Operators kleiner oder gleich dem Iteratorobjekt auf der rechten Seite ist.

operator>

Tests, wenn das Iteratorobjekt auf der linken Seite des Operators größer ist, als das Iteratorobjekt auf der rechten Seite.

operator>=

Tests, wenn das Iteratorobjekt auf der linken Seite des Operators größer oder gleich dem Iteratorobjekt auf der rechten Seite ist.

operator+

Fügt einen Offset zu einem Iterator hinzu und gibt neue reverse_iterator zurück, das das eingefügte Element in der neuen Offsetposition behandelt.

Bediener

Subtrahiert einen Iterator von anderen und gibt den Unterschied zurück.

k3tf6509.collapse_all(de-de,VS.110).gifKlassen

back_insert_iterator

Die Vorlagenklasse beschreibt ein Ausgabeiteratorobjekt.Außerdem werden Elemente in einem Container auf Typ Container ein, den er durch das geschützte pointer-Objekt zugreift, das, er aufgerufenen Container speichert.

bidirectional_iterator_tag

Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen bidirektionalen Iterator darstellt.

checked_array_iterator

Eine Klasse, die auf ein Array mit einem wahlfreien Zugriff zugreift, überprüfter Iterator.

forward_iterator_tag

Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen Vorwärtsiterator darstellt.

front_insert_iterator

Die Vorlagenklasse beschreibt ein Ausgabeiteratorobjekt.Außerdem werden Elemente in einem Container auf Typ Container ein, den er durch das geschützte pointer-Objekt zugreift, das, er aufgerufenen Container speichert.

input_iterator_tag

Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen Eingabeiterator darstellt.

insert_iterator

Die Vorlagenklasse beschreibt ein Ausgabeiteratorobjekt.Außerdem werden Elemente in einem Container auf Typ Container ein, den er durch das geschützte pointer-Objekt zugreift, das, er aufgerufenen Container speichert.Er speichert auch kennwortgeschützt Iterator-Objekt, der Klasse Container::iterator, aufgerufen iter.

istream_iterator

Die Vorlagenklasse beschreibt ein Eingabeiteratorobjekt.Er extrahiert Objekte der Klasse Ty von auf einem Eingabestream, den er durch ein Objekt, das ihm gespeichert, vom Typ pointer zu basic_istream<Elem, Tr> zugreift.

istreambuf_iterator

Die Vorlagenklasse beschreibt ein Eingabeiteratorobjekt.Außerdem werden Elemente der Klasse Elem in auf einen Ausgabestreampuffer ein, den er durch ein Objekt, das ihm gespeichert, vom Typ pointer zu basic_streambuf<Elem, Tr> zugreift.

Iterator

Die Vorlagenklasse wird als Basistyp für alle Iteratoren verwendet.

iterator_traits

Eine Vorlagenhilfsklasse, die wichtige Typen bereitstellt, die mit verschiedenen Iterator zugeordnet sind, gibt ein, sodass sie auf dieselbe Weise verwiesen werden können.

move_iterator

Ein Objekt move_iterator speichert einen Iterator mit wahlfreier Zugriff des Typs RandomIterator.Es verhält sich wie ein Iterator mit wahlfreier Zugriff, außer, wenn dereferenziert wird.Das Ergebnis operator* wird implizit auf value_type&&: umgewandelt, um rvalue reference auszuführen.

ostream_iterator

Die Vorlagenklasse beschreibt ein Ausgabeiteratorobjekt.Außerdem werden Objekte der Klasse Typ in auf einen Ausgabestream ein, den er durch ein Objekt, das ihm gespeichert, vom Typ pointer zu basic_ostream<Elem, Tr> zugreift.

ostreambuf_iterator Klasse

Die Vorlagenklasse beschreibt ein Ausgabeiteratorobjekt.Außerdem werden Elemente der Klasse Elem in auf einen Ausgabestreampuffer ein, den er durch ein Objekt, das ihm gespeichert, vom Typ pointer zu basic_streambuf<Elem, Tr> zugreift.

output_iterator_tag

Eine Klasse, die einen Rückgabetyp für iterator_category-Funktion bereitstellt, die einen Ausgabeiterator darstellt.

random_access_iterator_tag

Eine Klasse, die einen Rückgabetyp für iterator_category-Funktion bereitstellt, die einen Iterator mit wahlfreier Zugriff darstellt.

reverse_iterator

Die Vorlagenklasse beschreibt ein Objekt, das wie ein Iterator mit wahlfreier Zugriff verhält, nur in umgekehrter Reihenfolge.

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

Standardvorlagenbibliothek

Weitere Ressourcen

Headerdateien