2009-11-13 7 views
7

Ich habe nach Beispielcode gesucht, der Iterator für meinen eigenen Container erstellt, aber ich habe nicht wirklich ein gutes Beispiel gefunden. Ich weiß, dass das schon einmal gefragt wurde (Creating my own Iterators), aber ich sah keine befriedigende Antwort mit Beispielen.Woher bekomme ich Beispielcode in C++, um einen Iterator für meinen eigenen Container zu erstellen?

Ich bin auf der Suche nach einfachen Beispielcode, um zu beginnen, wie ich meinen eigenen Iterator zu entwerfen.

Dank

Antwort

6

Here Sie gute Einführung für das Erstellen von benutzerdefinierten Iteratoren finden können. Werfen Sie auch einen Blick auf die Boost.Iterator Bibliothek.

+0

Genauer gesagt ist der iterator_adaptor eine Sache der Schönheit. Mit nur wenigen Codezeilen erhalten Sie einen vollständigen Iterator. –

+0

'iterator_facade' ist auch sehr hilfreich – jalf

2

Ich fand Matthew Wilson's 'extended STL'sehr erzieherisch zu diesem Thema. Enthält viele Gebote und Verbote sowie viele praktische Programmiertipps. Ich denke, dieser Typ weiß wirklich, was er macht. (erstellt auch dafür Bibliotheken)

0

Werfen Sie einen Blick auf diesen Artikel, der beschreibt, wie eine benutzerdefinierte virtuelle Iterator für Ihre Klassen implementieren: article

Es hat einen bedeutenden Vorteil - Sie können eine abstrakte Basis-Iterator-Klasse erstellen und sie mit einigen benutzerdefinierten Iteratoren für Ihre eigenen Container und vielleicht für einige STL-Container erben. So können Sie Iteratoren dynamisch verwenden - Ihre Funktionen verwenden einen Zeiger auf die abstrakte Iterator-Klasse, während anderer Code auswählen kann, welche Container verwendet werden sollen.