The iterator type (with value type ) must be a model of .
An output iterator is an iterator that can write a sequence of
values. It is single-pass (old values of the iterator cannot be
re-used), and write-only.
An output iterator represents a position in a (possibly infinite)
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 stated value type of the iterator (should be
void
for an output iterator that does not model some other
iterator concept).
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
may not be written to again until it has
been incremented.
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 {*i = t; ++i;}
i
is dereferenceable or
off-the-end
All iterator operations must take amortized constant time.