Implementierung von Iteratoren in eine eigene Klasse
-
Hi,
ich frage mich ob mir jemand anhand eines beispiels erklären kann wie man iteratoren für eine Klasse implementiert. (evtl. mit den STL Iteratoren)
Links wären auch nicht schlecht. Thx
MfG
-
Für Beispiele kannst du dir ja die STL anschauen, die ist OS.
-
eViLiSSiMo schrieb:
ich frage mich ob mir jemand anhand eines beispiels erklären kann wie man iteratoren für eine Klasse implementiert.
Das hängt extrem von der Klasse ab für die der Iterator implementiert werden soll. Ein Iterator ist ja nur eine Abstraktion zur Traversierung einer Datenstruktur. Es gibt also nicht *den* Iterator oder *die* Technik einen Iterator zu implementieren.
Einfachstes Beispiel:
template <class T> class Vector { public: typedef T* iterator; typedef const T* const_iterator; iterator begin() {return vec_;} const_iterator begin() const {return vec_;} ... private: T* vec_; };
Ansonsten ist ein Iterator häufig als nested-Klasse implementiert. Wichtig ist nur, dass er eine genau festgelegte Schnittstelle anbietet.