The iterator type must be a model of .
An input iterator is an iterator that can read through a sequence of
values. It is single-pass (old values of the iterator cannot be
re-used), and read-only.
An input iterator represents a position in a sequence. Therefore, the
iterator can point into the sequence (returning a value when dereferenced
and being incrementable), or be off-the-end (and not dereferenceable or
incrementable).
The value type of the iterator (not necessarily what
*i
returns)
The difference type of the iterator
The category of the iterator
i
is incrementable (not
off-the-end)
i
is incrementable (not
off-the-end)
i
is incrementable (not
off-the-end)
Equivalent to (void)(++i)
i
is dereferenceable or
off-the-end
i
is incrementable (not
off-the-end)
Equivalent to {value_type t = *i; ++i; return t;}
i
is dereferenceable or
off-the-end
All iterator operations must take amortized constant time.