"Igor V. Rafienko" <igorr@ifi.uio.no> skrev i en meddelelse
news:xjvk6bxrge2.fsf@fire.ifi.uio.no...
>[ Torben W. Hansen ]
> En iterator er en abstraksjon. En abstraksjon som lar en jobbe med
> elementer i en samling (container), ett av gangen.
>
> Kanskje det vil hjelpe med en analogi: tenk at du står foran en
> kjøpmann og skal ha noen epler fra en kasse. Du peker med fingeren på
> det eplet du skal ha. Fingeren din vil i så fall være en
> (random-access) iterator. Kassen med epler vil være den underliggende
> container (eller er det kanskje kassen + kjøpmann?)
>
> En peker vil tilfredstille iteratorkrav for visse datastrukturer (fx.
> en array). Men andre datastrukturer vil kreve litt mer kompliserte
> implementasjoner av iterators. En iterator vil da typisk være en
> klasse med noen tilstandsvariable (som fx. forteller hvor i den
> underliggende datastrukturen iteratoren er) og noen metoder (slik som
> op++() og op++(int)) som implementerer iteratorprotokollen.
Tak
Kan man lidt populært sige at en iterator er en "ting" (evt. klasse) som:
har med en containers dataelementer at gøre
tilbyder bla. værktøjer til at få adgang til /tilføje/fjerne dataelementer i
containeren
tilbyder værktøjer til manipulering af dataelementer i containeren
(og ifølge Mogens Hansen, ikke nødvendigvis gør dette via en pointer)
???
Med venlig hilsen
Torben W. Hansen