std::insert_iterator (3) - Linux Manuals

std::insert_iterator: std::insert_iterator


std::insert_iterator - std::insert_iterator


Defined in header <iterator>
template< class Container >
class insert_iterator : public std::iterator< std::output_iterator_tag, (until C++17)
void,void,void,void >
template< class Container > (since C++17)
class insert_iterator;

std::insert_iterator is a LegacyOutputIterator that inserts elements into a container for which it was constructed, at the position pointed to by the supplied iterator. The container's insert() member function is called whenever the iterator (whether dereferenced or not) is assigned to. Incrementing the std::insert_iterator is a no-op.

Member types

Member type Definition
container_type Container

Member functions

                constructs a new insert_iterator
constructor (public member function)
                inserts an object into the associated container
operator= (public member function)
operator* (public member function)
operator++ (public member function)

Member objects

Member name Definition
container (protected member object) a pointer of type Container*
                                    an iterator of type
iter (protected member object) (until C++20)
                                    (since C++20)

Member types

Member type Definition
value_type void
difference_type void
pointer void
reference void
iterator_category std::output_iterator_tag

These member types are required to be obtained by inheriting from std::iterator<std::output_iterator_tag, void, void, void, void>. (until C++17)


// Run this code

  #include <vector>
  #include <list>
  #include <iostream>
  #include <iterator>
  #include <algorithm>

  int main()
      std::vector<int> v{1,2,3,4,5};
      std::list<int> l{-1,-2,-3};
      std::copy(v.begin(), v.end(), // may be simplified with std::inserter
                std::insert_iterator<std::list<int>>(l, std::next(l.begin())));
      for (int n : l)
          std::cout << n << ' ';
      std::cout << '\n';


  -1 1 2 3 4 5 -2 -3

See also

                      creates a std::insert_iterator of type inferred from the argument
inserter (function template)
                      iterator adaptor for insertion at the end of a container
back_insert_iterator (class template)
                      iterator adaptor for insertion at the front of a container
front_insert_iterator (class template)