Like the containers, iterators define a common set of operations. Some operations are provided by all iterators; other operations are supported by only specific kinds of iterators. For example,
ostream_iterators have only increment, dereference, and assignment. Iterators on
deques support these operations and the decrement, relational, and arithmetic operators.
Iterators are categorized by the operations they provide and the categories form a sort of hierarchy. With the exception of output iterators, an iterator of a higher category provides all the operations of the iterators of a lower ...