Difference between revisions of "cpp/iterator/back inserter"
From cppreference.com
m (Text replace - "/sidebar" to "/navbar") |
m (Minor grammar change.) |
||
(13 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|back_inserter}} | {{cpp/title|back_inserter}} | ||
{{cpp/iterator/navbar}} | {{cpp/iterator/navbar}} | ||
− | {{ddcl | + | {{ddcl|header=iterator|notes={{mark constexpr since c++20}}| |
− | {{ | + | |
− | + | ||
template< class Container > | template< class Container > | ||
− | std::back_insert_iterator<Container> back_inserter( Container& c); | + | std::back_insert_iterator<Container> back_inserter( Container& c ); |
}} | }} | ||
− | |||
− | {{tt|back_inserter}} is a convenience function template that constructs a {{ | + | {{tt|back_inserter}} is a convenience function template that constructs a {{lc|std::back_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_back}} operation}} |
− | {{ | + | {{par end}} |
===Return value=== | ===Return value=== | ||
− | A {{ | + | A {{lc|std::back_insert_iterator}} which can be used to add elements to the end of the container {{c|c}}. |
===Possible implementation=== | ===Possible implementation=== | ||
− | {{eq fun | + | {{eq fun|1= |
− | template< class Container > | + | template<class Container> |
− | std::back_insert_iterator<Container> back_inserter( Container& c) | + | std::back_insert_iterator<Container> back_inserter(Container& c) |
{ | { | ||
return std::back_insert_iterator<Container>(c); | return std::back_insert_iterator<Container>(c); | ||
Line 30: | Line 27: | ||
===Example=== | ===Example=== | ||
{{example | {{example | ||
− | + | |code= | |
− | + | ||
− | + | ||
− | + | ||
#include <algorithm> | #include <algorithm> | ||
+ | #include <iostream> | ||
#include <iterator> | #include <iterator> | ||
+ | #include <vector> | ||
+ | |||
int main() | int main() | ||
{ | { | ||
− | std::vector<int> v{1,2,3,4,5,6,7,8,9,10}; | + | std::vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; |
std::fill_n(std::back_inserter(v), 3, -1); | std::fill_n(std::back_inserter(v), 3, -1); | ||
− | for(int n : v) | + | for (int n : v) |
std::cout << n << ' '; | std::cout << n << ' '; | ||
+ | std::cout << '\n'; | ||
} | } | ||
− | + | |output= | |
1 2 3 4 5 6 7 8 9 10 -1 -1 -1 | 1 2 3 4 5 6 7 8 9 10 -1 -1 -1 | ||
}} | }} | ||
===See also=== | ===See also=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/iterator/dsc back_insert_iterator}} |
− | {{ | + | {{dsc inc|cpp/iterator/dsc front_inserter}} |
− | {{ | + | {{dsc inc|cpp/iterator/dsc inserter}} |
− | {{ | + | {{dsc end}} |
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 20:09, 24 December 2023
Defined in header <iterator>
|
||
template< class Container > std::back_insert_iterator<Container> back_inserter( Container& c ); |
(constexpr since C++20) | |
back_inserter
is a convenience function template that constructs a std::back_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_back operation
|
[edit] Return value
A std::back_insert_iterator which can be used to add elements to the end of the container c.
[edit] Possible implementation
template<class Container> std::back_insert_iterator<Container> back_inserter(Container& c) { return std::back_insert_iterator<Container>(c); } |
[edit] Example
Run this code
#include <algorithm> #include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::fill_n(std::back_inserter(v), 3, -1); for (int n : v) std::cout << n << ' '; std::cout << '\n'; }
Output:
1 2 3 4 5 6 7 8 9 10 -1 -1 -1
[edit] See also
iterator adaptor for insertion at the end of a container (class template) | |
creates a std::front_insert_iterator of type inferred from the argument (function template) | |
creates a std::insert_iterator of type inferred from the argument (function template) |