< cpp‎ | iterator
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
Iterator adaptors
Stream iterators
Iterator customization points
Iterator operations
Range access
Defined in header <iterator>
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 an 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 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>.

(until C++17)

[edit] Member functions

constructs a new front_insert_iterator
(public member function) [edit]
inserts an object into the associated container
(public member function) [edit]
(public member function) [edit]
(public member function) [edit]

[edit] Member objects

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

[edit] Example

#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_insert_iterator<std::deque<int>>(d)); // or std::front_inserter(d)
    for(int n : d)
        std::cout << n << ' ';
    std::cout << '\n';


5 4 3 2 1

[edit] See also

creates a std::front_insert_iterator of type inferred from the argument
(function template) [edit]
iterator adaptor for insertion at the end of a container
(class template) [edit]
iterator adaptor for insertion into a container
(class template) [edit]