Difference between revisions of "cpp/iterator/front inserter"
From cppreference.com
m (r2.7.3) (Robot: Adding de, es, fr, it, ja, pt, ru, zh) |
m (→Synopsis: {{mark constexpr since c++20}}) |
||
(9 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|front_inserter}} | {{cpp/title|front_inserter}} | ||
{{cpp/iterator/navbar}} | {{cpp/iterator/navbar}} | ||
− | {{ddcl | + | {{ddcl|header=iterator|notes={{mark constexpr since c++20}}| |
− | {{ | + | |
− | + | ||
template< class Container > | template< class Container > | ||
− | std::front_insert_iterator<Container> front_inserter( Container& c); | + | std::front_insert_iterator<Container> front_inserter( Container& c ); |
}} | }} | ||
− | |||
− | {{tt|front_inserter}} is a convenience function template that constructs a {{ | + | {{tt|front_inserter}} is a convenience function template that constructs a {{lc|std::front_insert_iterator}} for the container {{c|c}} with the type deduced from the type of the argument. |
===Parameters=== | ===Parameters=== | ||
− | {{ | + | {{par begin}} |
− | {{ | + | {{par|c|container that supports a {{tt|push_front}} operation}} |
− | {{ | + | {{par end}} |
===Return value=== | ===Return value=== | ||
− | A {{ | + | A {{lc|std::front_insert_iterator}} which can be used to add elements to the beginning of the container {{c|c}}. |
===Possible implementation=== | ===Possible implementation=== | ||
− | {{eq fun | 1= | + | {{eq fun|1= |
− | template< class Container > | + | template<class Container> |
− | std::front_insert_iterator<Container> front_inserter( Container& c) | + | std::front_insert_iterator<Container> front_inserter( Container& c ) |
{ | { | ||
return std::front_insert_iterator<Container>(c); | return std::front_insert_iterator<Container>(c); | ||
Line 30: | Line 27: | ||
===Example=== | ===Example=== | ||
{{example | {{example | ||
− | + | |code= | |
− | + | ||
− | + | ||
− | + | ||
#include <algorithm> | #include <algorithm> | ||
+ | #include <deque> | ||
+ | #include <iostream> | ||
#include <iterator> | #include <iterator> | ||
+ | #include <vector> | ||
+ | |||
int main() | int main() | ||
{ | { | ||
− | std:: | + | std::vector<int> v{1, 2, 3, 4, 5}; |
− | std:: | + | std::deque<int> d; |
− | for(int n : | + | std::copy(v.begin(), v.end(), std::front_inserter(d)); |
+ | for (int n : d) | ||
std::cout << n << ' '; | std::cout << n << ' '; | ||
+ | std::cout << '\n'; | ||
} | } | ||
− | + | |output= | |
− | + | 5 4 3 2 1 | |
}} | }} | ||
===See also=== | ===See also=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/iterator/dsc front_insert_iterator}} |
− | {{ | + | {{dsc inc|cpp/iterator/dsc back_inserter}} |
− | {{ | + | {{dsc inc|cpp/iterator/dsc inserter}} |
− | {{ | + | {{dsc end}} |
− | + | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 14:54, 3 October 2023
Defined in header <iterator>
|
||
template< class Container > std::front_insert_iterator<Container> front_inserter( Container& c ); |
(constexpr since C++20) | |
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.
Contents |
[edit] Parameters
c | - | container that supports a push_front operation
|
[edit] Return value
A std::front_insert_iterator which can be used to add elements to the beginning of the container c.
[edit] Possible implementation
template<class Container> std::front_insert_iterator<Container> front_inserter( Container& c ) { return std::front_insert_iterator<Container>(c); } |
[edit] Example
Run this code
#include <algorithm> #include <deque> #include <iostream> #include <iterator> #include <vector> 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 << ' '; std::cout << '\n'; }
Output:
5 4 3 2 1
[edit] See also
iterator adaptor for insertion at the front of a container (class template) | |
creates a std::back_insert_iterator of type inferred from the argument (function template) | |
creates a std::insert_iterator of type inferred from the argument (function template) |