STL Iterators can have
3 different
states:
Singular - The iterator's
value does not
dereference any
object in any
container. (You can
uninitialize the iterator or
seti it to a
logical null value)
Dereferenceable - The iterator
points to a
valid object in the container.
Past-the-end - The iterator points to the object
position past the
last object in the container.