template<class Cont>
class insert_iterator
: public iterator<output_iterator_tag, void, void> {
public:
typedef Cont container_type;
typedef Cont::value_type value_type;
explicit insert_iterator(Cont& x, Cont::iterator it);
insert_iterator& operator=(const Cont::value_type& val);
insert_iterator& operator*();
insert_iterator& operator++();
insert_iterator& operator++(int);
protected:
Cont& container;
Cont::iterator iter;
};
The template class describes an output iterator object. It inserts elements into a container of type Cont
, which it
accesses via the protected reference object it stores called container
. It also stores the protected iterator object, of
class Cont::iterator
, called iter
. The container must define:
iterator
, which is the type of an iterator for the container.value_type
, which is the type of an element of the sequence controlled by the container.insert
(iterator it, value_type c)
, which inserts a new element with value c
immediately before the element designated by it
in the controlled sequence, then returns an iterator that
designates the inserted element.