Ron Natalie wrote:
Pete Becker wrote:
red floyd wrote:
Any valid iterator
must refer to a container.
Any valid iterator must refer to a sequence. Containers are one way of
producing sequences, but not the only way.
The standard defines it as something that peforms interations
over a container, stream, or streambuffer.
I couldn't find that definition. In fact, iterators are defined
operationally,
by the operations that they support.
I suspect you are forgetting that the term SEQUENCE already has a
defined meaning in C++ as the subset of containers that include
vector, list, queue, dequeue, and stack.
That's an unfortunate term, which should be "sequence container",
just as we have "associative container" and "unordered container." And
it's clear from the way I used it that I wasn't referring to a sequence
container, but to a sequence in its more ordinary sense.
In practice, an iterator is just a type that obeys the iterator
rules. It's quite possible to have a valid iterator that iterates
over just about anything including associative containers, plain
old arrays, and bizarre user defined types (we have our own
database iterators that are quite legal C++ iterators in their
own right).
Exactly.
containers.
Roundhouse Consulting, Ltd. (www.versatilecoding.com)