std::insert_iterator (3) - Linux Manuals

std::insert_iterator: std::insert_iterator

NAME

std::insert_iterator - std::insert_iterator

Synopsis


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)
                no-op
operator* (public member function)
                no-op
operator++ (public member function)
operator++(int)

Member objects


Member name Definition
container (protected member object) a pointer of type Container*
                                    an iterator of type
                                    Container::iterator
iter (protected member object) (until C++20)
                                    ranges::iterator_t<Container>
                                    (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)

Example


// 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';
  }

Output:


  -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)