...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::icl::insert_iterator — Performes an insertion using a container's memberfunction add, when operator= is called.
// In header: <boost/icl/iterator.hpp> template<typename ContainerT> class insert_iterator { public: // types typedef ContainerT container_type; // The container's type. typedef std::output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; // construct/copy/destruct insert_iterator(ContainerT &, typename ContainerT::iterator); insert_iterator & operator=(typename ContainerT::const_reference); // public member functions insert_iterator & operator *(); insert_iterator & operator++(); insert_iterator & operator++(int); };
insert_iterator
public
construct/copy/destructinsert_iterator(ContainerT & cont, typename ContainerT::iterator iter);
An insert_iterator
is constructed with a container and a position that has to be maintained.
insert_iterator & operator=(typename ContainerT::const_reference value);
This assignment operator adds the value
before the current position. It maintains it's position by incrementing after addition.
insert_iterator
public member functionsinsert_iterator & operator *();
insert_iterator & operator++();
insert_iterator & operator++(int);