2009-11-13 5 views

Odpowiedz

6

Here można znaleźć dobry wstęp do tworzenia niestandardowych iteratory. Zobacz także bibliotekę Boost.Iterator.

+0

W szczególności iterator_adaptor to rzecz piękna. Z tylko kilkoma liniami kodu otrzymujesz pełnowymiarowy iterator. –

+0

'iterator_facade' jest również bardzo pomocny – jalf

2

Znalazłem Matthew Wilson's 'extended STL'bardzo edukacyjnych na ten temat. Zawiera wiele nakazów i zakazów oraz mnóstwo praktycznych wskazówek programistycznych. Myślę, że ten facet naprawdę wie, co robi. (stworzone do tego biblioteki)

0

Spójrz na ten artykuł, który opisuje jak zaimplementować niestandardowy wirtualny iterator dla swoich klas: article

Ma jedną istotną zaletę - możesz utworzyć abstrakcyjną klasę iteratora bazowego i dziedziczyć ją za pomocą kilku niestandardowych iteratorów dla własnych kontenerów i może dla niektórych kontenerów STL. Będziesz więc mógł dynamicznie używać iteratorów - twoje funkcje będą używać wskaźnika do abstrakcyjnej klasy iteratora, podczas gdy inny kod będzie mógł wybrać, które pojemniki powinny zostać użyte.

Powiązane problemy