std::front_inserter(3)

NAME
std::front_inserter - std::front_inserter

Synopsis
   Defined in header <iterator>
   template< class Container > (until C++20)
   std::front_insert_iterator<Container> front_inserter( Container& c );
   template< class Container >
   constexpr std::front_insert_iterator<Container> front_inserter( (since C++20)
   Container& c );
   front_inserter is a convenience function template that constructs a
   std::front_insert_iterator for the container c with the type deduced from the type
   of the argument.

Parameters
   c - container that supports a push_front operation

Return value
   A std::front_insert_iterator which can be used to add elements to the beginning of
   the container c

Possible implementation
   template< class Container >
   std::front_insert_iterator<Container> front_inserter( Container& c )
   {
       return std::front_insert_iterator<Container>(c);
   }

Example
// Run this code
 #include <vector>
 #include <deque>
 #include <iostream>
 #include <iterator>
 #include <algorithm>
 int main()
 {
     std::vector<int> v{1,2,3,4,5};
     std::deque<int> d;
     std::copy(v.begin(), v.end(), std::front_inserter(d));
     for(int n : d)
         std::cout << n << ' ';
 }

Output:
 5 4 3 2 1

See also
   front_insert_iterator iterator adaptor for insertion at the front of a container
                        (class template)
                        creates a std::back_insert_iterator of type inferred from the
   back_inserter argument
                        (function template)
                        creates a std::insert_iterator of type inferred from the
   inserter argument
                        (function template)