std::back_insert_iterator
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Iterator library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
  
 
 
 
 
 
  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)(C++20)(C++23)(C++20)(C++20)
(deprecated in C++17)
(C++20)
(C++20)
(C++20)(C++20)
  (C++20)
(C++20)
(C++20)
(C++20)
(C++14)
(C++11)
(C++11)
(C++20)(C++20)
(C++20)(C++20)
back_insert_iterator
(C++20)
(C++20)
(C++20)
(C++23)
(C++23)
(C++23)
(C++23)
(C++23)
(C++11)(C++14)
(C++14)(C++14)
  std::back_insert_iterator
Defined in header 
 
 
<iterator> 
 template< class Container >
 
 (until C++17) 
class back_insert_iterator
template< class Container >
class back_insert_iterator;
 
 (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.
[edit] Member types
 Member type
 Definition
iterator_category
 std::output_iterator_tag 
value_type
 void
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 std::iterator <std::output_iterator_tag, void, void, void, void>.
[edit] Member functions
[edit] Member objects
 Member name
 Definition
container (protected)
 a pointer of type Container*
[edit] 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