std::front_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)
front_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::front_insert_iterator
Defined in header
<iterator>
template< class Container >
(until C++17)
class front_insert_iterator
template< class Container >
class front_insert_iterator;
(since C++17)
class front_insert_iterator;
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
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 <deque> #include <iostream> #include <iterator> #include <vector> namespace stb { void println(auto, auto const& d) { std::ranges::copy (d, std::ostream_iterator <int>(std::cout, " ")); std::cout << '\n'; } } int main() { std::vector <int> v{1, 2, 3, 4, 5}; std::deque <int> d; std::copy (v.begin(), v.end(), std::front_insert_iterator<std::deque <int>>(d)); // or std::front_inserter(d) stb::println("{}", d); }
Output:
5 4 3 2 1