std::back_insert_iterator - cppreference.com (original) (raw)

std::back_insert_iterator

| Defined in header | | | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------- | | template< class Container > class back_insert_iterator : public std::iterator<std::output_iterator_tag, void, void, void, void> | | (until C++17) | | template< class Container > class back_insert_iterator; | | (since C++17) |

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
difference_type
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>. (until C++17)

[edit] Member functions

[edit] Member objects

Member name Definition
container (protected) a pointer of type Container*

[edit] Example

#include #include #include #include   int main() { std::vector v;   std::generate_n( std::back_insert_iterator<std::vector>(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:

[edit] See also