std::back_insert_iterator(3)

NAME
std::back_insert_iterator - std::back_insert_iterator

Synopsis
   Defined in header <iterator>
   template< class Container >
   class back_insert_iterator (until C++17)
       : public std::iterator<std::output_iterator_tag, void, void,
   void, void>
   template< class Container > (since C++17)
   class back_insert_iterator;
   std::back_insert_iterator is a LegacyOutputIterator that appends elements to a
   container for which it was constructed. The container's push_back() member function
   is called whenever the iterator (whether dereferenced or not) is assigned to.
   Incrementing the std::back_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 back_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) a pointer of type Container*

Example
// Run this code
 #include <algorithm>
 #include <iostream>
 #include <iterator>
 #include <vector>
 int main()
 {
     std::vector<int> v;
     std::generate_n(
         std::back_insert_iterator<std::vector<int>>(v),
             // Or use std::back_inserter helper
             // Or use std::back_insert_iterator(v) C++17's syntax
         10,
         [n = 0]() mutable { return ++n; }
     );
     for (int n : v)
         std::cout << n << ' ';
     std::cout << '\n';
 }

Output:
 1 2 3 4 5 6 7 8 9 10

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