012
21.08.2003, 11:45 Uhr
0xdeadbeef
Gott (Operator)
|
In der STL kannst du über so ziemlich alles, was Daten beinhaltet und in das man eine Reihenfolge bringen kann, einen Iterator anbringen. Das ist im Grunde eine Art besserer Zeiger, und genauso kann man ihn auch behandeln. Zum Beispiel:
C++: |
std::list<int> l; // l mit Daten füllen for(std::list<int>::iterator itr = l.begin(); //Iterator deklarieren, auf head setzen itr != l.end(); //Bis zum Ende der Liste ++itr) { //nächstes Element std::cout << *itr << std::endl; //und hier Zeug machen }
|
Diese Art der Schleife nimmt dir das lästige rumgebastele mit pointer = pointer->next; usw. ab - man muss das Rad ja nicht immer neu erfinden. std::copy ist im nur eine Funktion, die zwei Iteratoren (Anfang und Ende) und einen Wert entgegennimmt, dann die Werte aus den Iteratoren ausliest und mit dem Wert vergleicht, um so zu zählen, wie oft der Wert im angegebenen Intervall vorkommt. die istream_iterator<char>s sind Iteratoren auf einem Eingabestream, zum Beispiel einer Datei oder cin, die chars auslesen (so würden dann istream_iterator<int>s ints auslesen), und istream_iterator<char>() ist ein spezieller istream_iterator, der anzeigt, dass der Stream leer ist. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 21.08.2003 um 11:47 Uhr von 0xdeadbeef editiert. |