An iterator is just a concept that provides the interface needed for iterators - they are different for different types of iterators and are specified in section 24.1 of the C ++ standard (Iterator requirements).
How iterators are implemented depends on what they iterate over - for vectors they are usually a wrapper around one pointer to an array (in any case, in the release), for more complex containers they have a more complicated implementation. For open-loop ranges, they will contain the state of any algorithm used to generate elements.
Note that a pointer to an element in an array satisfies the requirements of an iterator with random access, therefore, to some extent, they are interchangeable.
Joe Gauterin Apr 28 '10 at 9:42 on 2010-04-28 09:42
source share