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