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

std::front_insert_iterator

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

std::front_insert_iterator is a LegacyOutputIterator that prepends elements to a container for which it was constructed. The container's push_front() member function is called whenever the iterator (whether dereferenced or not) is assigned to. Incrementing the std::front_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 #include   namespace stb { void println(auto, auto const& d) { std::ranges::copy(d, std::ostream_iterator(std::cout, " ")); std::cout << '\n'; } }   int main() { std::vector v{1, 2, 3, 4, 5}; std::deque d;   std::copy(v.begin(), v.end(), std::front_insert_iterator<std::deque>(d)); // or std::front_inserter(d)   stb::println("{}", d); }

Output:

[edit] See also