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: