table of contents
        
      
      
    | std::insert_iterator(3) | C++ Standard Libary | std::insert_iterator(3) | 
NAME¶
std::insert_iterator - std::insert_iterator
Synopsis¶
 Defined in header <iterator>
  
   template< class Container >
  
   class insert_iterator : public std::iterator< (until C++17)
  
   std::output_iterator_tag,
  
   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
  
   iterator_category std::output_iterator_tag
  
   value_type void
  
   difference_type void (until C++20)
  
   std::ptrdiff_t (since C++20)
  
   pointer void
  
   reference void
  
   container_type Container
  
   Member types iterator_category, value_type, difference_type, pointer
  
   and reference are required to be obtained by inheriting from (until
    C++17)
  
   std::iterator<std::output_iterator_tag, void, void, void, void>.
Member functions¶
 constructor constructs a new insert_iterator
  
   (public member function)
  
   operator= inserts an object into the associated container
  
   (public member function)
  
   operator* no-op
  
   (public member function)
  
   operator++ no-op
  
   operator++(int) (public member function)
Member objects¶
 Member name Definition
  
   container (protected member object) a pointer of type Container*
  
   an iterator of type
  
   Container::iterator
  
   iter (protected member object) \fPfI(until C++20)
  
   ranges::iterator_t<Container>
  
   (since C++20)
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
  
   inserter argument
  
   (function template)
  
   back_insert_iterator iterator adaptor for insertion at the end of a container
  
   (class template)
  
   front_insert_iterator iterator adaptor for insertion at the front of a
    container
  
   (class template)
| 2022.07.31 | http://cppreference.com |