<iterator>
Definiert die primitiven Elemente von Iteratoren, vordefinierte Iteratoren sowie Stream-Iteratoren sowie einige unterstützende Vorlagen. Die vordefinierten Iteratoren beinhalten Insert- und Reverse-Adapter. Es gibt drei Klassen von Insert-Adaptern für Iteratoren: Front, Back und General. Sie bieten Einfügesemantik anstelle der Semantik zum Überschreiben, die von Iteratoren der Memberfunktion des Containers bereitgestellt wird.
#include <iterator>
Hinweise
Iteratoren sind eine Verallgemeinerung von Zeigern. Die Anforderungen werden so abstrahiert, dass ein C++-Programm mit unterschiedlichen Datenstrukturen einheitlich arbeiten kann. Iteratoren dienen als Vermittler zwischen Containern und allgemeinen Algorithmen. Algorithmen sind nicht für bestimmte Datentypen definiert, sondern für Bereiche, die durch den Iterator-Typ festgelegt sind. Der Algorithmus funktioniert dann für jede Datenstruktur, die den Anforderungen des Iterators entspricht. Es wird zwischen fünf Typen oder Kategorien von Iteratoren mit jeweils eigenen Anforderungen und Funktionen unterschieden:
Output: Kann vorwärts bewegt werden, Werte speichern, aber nicht abrufen, und wird von ostream und inserter bereitgestellt.
Input: Kann vorwärts bewegt werden, Werte abrufen, aber nicht speichern, und wird von istream bereitgestellt.
Forward: Kann vorwärts bewegt werden und Werte speichern sowie abrufen.
Bidirektional: Kann vorwärts und rückwärts bewegt werden, Werte speichern und abrufen, und wird durch List, Set, Multiset, Map und Multimap bereitgestellt.
Random-Access: Auf Elemente wird in beliebiger Reihenfolge zugegriffen, Werte können gespeichert und abgerufen werden, wird durch Vector, Deque, String und Array bereitgestellt.
Iteratoren mit höheren Anforderungen und besserem Zugriff auf Elemente können anstelle von Iteratoren mit geringeren Anforderungen verwendet werden. Wird beispielsweise ein Forward-Iterator aufgerufen, kann stattdessen auch ein Random-Access-Iterator verwendet werden.
Visual Studio besitzt zusätzliche Erweiterungen für C++-Standardbibliotheksiteratoren, um eine Vielzahl von Debugmodussituationen für aktivierte und nicht aktivierte Iteratoren zu unterstützen. Weitere Informationen finden Sie unter Sichere Bibliotheken: C++-Standardbibliothek.
Funktionen
Damit kann ein Iterator um eine bestimmte Anzahl von Positionen vorwärts verschoben werden. |
|
Damit wird ein Iterator erstellt, mit dem Elemente an das Ende eines bestimmten Containers eingefügt werden können. |
|
Ruft einen Iterator für das erste Element in einem angegebenen Container ab. |
|
Ruft einen konstanten Iterator für das erste Element in einem angegebenen Container ab. |
|
Ruft einen konstanten Iterator für das Element ab, das auf das letzte Element im angegebenen Container folgt. |
|
Bestimmt die Anzahl von Inkrementen zwischen den durch zwei Iteratoren festgelegten Positionen. |
|
Ruft einen Iterator für das Element ab, das auf das letzte Element im angegebenen Container folgt. |
|
Damit wird ein Iterator erstellt, mit dem Elemente an den Anfang eines bestimmten Containers eingefügt werden können. |
|
Ein Iterator-Adapter, mit dem einem Container an einem bestimmten Punkt ein neues Element hinzugefügt wird. |
|
Erstellt ein checked_array_iterator-Objekt, das von anderen Algorithmen verwendet werden kann. Hinweis Bei dieser Funktion handelt es sich um eine Microsoft-Erweiterung der C++-Standardbibliothek.Der Code, der mit dieser Funktion implementiert wird, ist nicht auf C++-Standardbuildumgebungen übertragbar, die die Microsoft-Erweiterung nicht unterstützen. |
|
Gibt einen Move-Iterator zurück, der den bereitgestellten Iterator als gespeicherten Basis-Iterator enthält. |
|
Erstellt ein unchecked_array_iterator-Objekt, das von anderen Algorithmen verwendet werden kann. Hinweis Bei dieser Funktion handelt es sich um eine Microsoft-Erweiterung der C++-Standardbibliothek.Der Code, der mit dieser Funktion implementiert wird, ist nicht auf C++-Standardbuildumgebungen übertragbar, die die Microsoft-Erweiterung nicht unterstützen. |
|
Führt eine bestimmte Anzahl von Iterationen aus und gibt die neue Position des Iterators zurück. |
|
Führt eine bestimmte Anzahl von Iterationen rückwärts aus und gibt die neue Position des Iterators zurück. |
Operatoren
Testet, ob das Iterator-Objekt links vom Operator ungleich dem Iterator-Objekt rechts vom Operator ist. |
|
Testet, ob das Iterator-Objekt links vom Operator gleich dem Iterator-Objekt rechts vom Operator ist. |
|
Testet, ob das Iterator-Objekt links vom Operator kleiner ist als das Iterator-Objekt rechts vom Operator. |
|
Testet, ob das Iterator-Objekt links vom Operator kleiner als oder gleich dem Iterator-Objekt rechts vom Operator ist. |
|
Testet, ob das Iterator-Objekt links vom Operator größer als das Iterator-Objekt rechts vom Operator ist. |
|
Testet, ob das Iterator-Objekt links vom Operator größer als oder gleich dem Iterator-Objekt rechts vom Operator ist. |
|
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. |
|
Subtrahiert einen Iterator von einem anderen und gibt die Differenz zurück. |
Klassen
Die Vorlagenklasse beschreibt einen Output-Iterator. Es werden Elemente in einen Container des Typs Container eingefügt, auf den über das geschützte Zeiger-Objekt zugegriffen wird (Container). |
|
Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen bidirektionalen Iterator darstellt. |
|
Eine Klasse, die auf ein Array mit einem Iterator vom Typ "Random-Access, Checked" zugreift. Hinweis Bei dieser Klasse handelt es sich um eine Microsoft-Erweiterung der C++-Standardbibliothek.Der Code, der mit dieser Funktion implementiert wird, ist nicht auf C++-Standardbuildumgebungen übertragbar, die die Microsoft-Erweiterung nicht unterstützen. |
|
Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen Forward-Iterator darstellt. |
|
Die Vorlagenklasse beschreibt einen Output-Iterator. Es werden Elemente in einen Container des Typs Container eingefügt, auf den über das geschützte Zeiger-Objekt zugegriffen wird (Container). |
|
Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen Input-Iterator darstellt. |
|
Die Vorlagenklasse beschreibt einen Output-Iterator. Es werden Elemente in einen Container des Typs Container eingefügt, auf den über das geschützte Zeiger-Objekt zugegriffen wird (Container). Gespeichert wird außerdem das geschützte Iterator-Objekt der Klasse Container::iterator namens iter. |
|
Die Vorlagenklasse beschreibt einen Input-Iterator. Es werden Objekte der Klasse Ty von einem Input-Stream extrahiert. Der Zugriff darauf erfolgt durch ein gespeichertes Objekt des Typs Zeiger zu basic_istream<Elem, Tr>. |
|
Die Vorlagenklasse beschreibt einen Input-Iterator. Elemente der Klasse Elem werden in einen Ausgabestreampuffer eingefügt. Der Zugriff darauf erfolgt durch ein gespeichertes Objekt des Typs Zeiger zu basic_streambuf<Elem, Tr>. |
|
Die Vorlagenklasse wird als Basistyp für alle Iteratoren verwendet. |
|
Eine Hilfsklasse für Vorlagen, die wichtige Typen bereitstellt, die mit verschiedenen Iterator-Typen verknüpft sind, damit die Verweise auf dieselbe Weise funktionieren. |
|
Ein move_iterator-Objekt speichert einen Random-Access-Iterator des Typs RandomIterator. Es verhält sich wie ein Rand-Access-Iterator, außer bei einer Dereferenzierung. Das Ergebnis von operator* wird implizit umgewandelt in value_type&&:, um rvalue reference zu erhalten. |
|
Die Vorlagenklasse beschreibt einen Output-Iterator. Objekte der Klasse Type werden in einen Ausgabestream eingefügt. Der Zugriff darauf erfolgt durch ein gespeichertes Objekt des Typs Zeiger zu basic_ostream<Elem, Tr>. |
|
Die Vorlagenklasse beschreibt einen Output-Iterator. Elemente der Klasse Elem werden in einen Ausgabestreampuffer eingefügt. Der Zugriff darauf erfolgt durch ein gespeichertes Objekt des Typs Zeiger zu basic_streambuf<Elem, Tr>. |
|
Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen Output-Iterator darstellt. |
|
Eine Klasse, die einen Rückgabetyp für eine iterator_category-Funktion bereitstellt, die einen Random-Access-Iterator darstellt. |
|
Die Vorlagenklasse beschreibt ein Objekt, das sich wie ein Random-Access-Iterator verhält, nur in umgekehrter Reihenfolge. |
|
Eine Klasse, die auf ein Array mit einem Iterator vom Typ "Random-Access, Unchecked" zugreift. Hinweis Bei dieser Klasse handelt es sich um eine Microsoft-Erweiterung der C++-Standardbibliothek.Der Code, der mit dieser Funktion implementiert wird, ist nicht auf C++-Standardbuildumgebungen übertragbar, die die Microsoft-Erweiterung nicht unterstützen. |
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek