Mit Iteratoren können Elemente eines Containers iterativ - also anhand einer Schleife besucht werden.
Jeder Iterator zeigt dabei auf eine Elementposition des entsprechenden Containers.
Iteratoren bieten folgende Operationen an:
* Adress-Arithmetik
* Inkrementierung und Dekrementierung
* Dereferenzierung
* Gleichheit
* Ordnungsrelation
// Liste anlegen, mit Inhalt füllen und vorwärts wieder ausgeben #include <iostream> #include <iterator> #include <list> int main() { list<int> lst; list<int>::iterator it; const int size = 10; // Liste mit Quadratzahlen füllen for (int i = 1; i <= size; i++) lst.push_back(i*i); // Liste mit Iterator ausgeben for (it = lst.begin(); it != lst.end(); ++it) cout << *it << ", "; cout << endl; return 0; }
// Liste anlegen, mit Inhalt füllen // und mit reverse_iterator rückwärts wieder ausgeben #include <iostream> #include <iterator> #include <list> int main() { list<int> lst; list<int>::reverse_iterator it_r; const int size = 10; // Liste mit Quadratzahlen füllen for (int i = 1; i <= size; i++) lst.push_back(i*i); // Liste mit Reversions-Iterator ausgeben for (it_r = lst.rbegin(); it_r != lst.rend(); ++it_r) cout << *it_r << ", "; cout << endl; return 0; }
// Vektor anlegen, mit Inhalt füllen und vorwärts wieder ausgeben #include <iostream> #include <iterator> #include <vector> int main() { const int size = 10; vector<int> vec; vector<int>::iterator it; // Vektor mit Quadratzahlen füllen it = vec.begin(); for (int i = 1; i <= size; i++) *it++ = i*i; // Vektor mit Iterator ausgeben for (it = vec.begin(); it != vec.end(); ++it) cout << *it << ", "; cout << endl; return 0; }
// Inhalt mit back_insert_iterator absteigent sortiert in Liste einfügen #include <iostream> #include <iterator> #include <list> int main() { // Einfüge-Iterator erstellen list<int> v; back_insert_iterator< list<int> > aBackInserter(v); // Container mit Qudratzahlen füllen for (int i = 1; i <= 10; i++) *aBackInserter++ = i*i; // Container ausgeben list<int>::iterator it = v.begin(); while(it != v.end()) cout << *it++ << ", "; cout << endl; return 0; }
// Inhalt mit front_insert_iterator aufsteigend sortiert in Liste einfügen #include <iostream> #include <iterator> #include <list> int main() { // Liste mit Einfüge-Iterator list<int> v; front_insert_iterator< list<int> > aFrontInserter(v); // Container mit Qudratzahlen füllen: for (int i = 1; i <= 10; i++) *aFrontInserter++ = i*i; // Container ausgeben: list<int>::iterator it = v.begin(); while(it != v.end()) cout << *it++ << ", "; cout << endl; return 0; }