Namespaces
Variants

cpp/iterator/back insert iterator: Difference between revisions

From cppreference.com
use templates
Space Mission (talk | contribs)
m fmt.
 
(20 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{cpp/title|back_insert_iterator}}
{{cpp/title|back_insert_iterator}}
{{cpp/iterator/back_insert_iterator/navbar}}
{{cpp/iterator/back_insert_iterator/navbar}}
{{ddcl list begin}}
{{begin}}
{{ddcl list header | iterator}}
{{header|iterator}}
{{ddcl list item | 1=
{{
|1=
template< class Container >
template< class Container >
class back_insert_iterator : public std::iterator< std::output_iterator_tag,
class back_insert_iterator
                                                  void,void,void,void >
: public std::iterator<std::output_iterator_tag, void, void, void, void>
}}
}}
{{ddcl list end}}
{{
end}}


{{tt|std::back_insert_iterator}} is an output iterator that appends to a container for which it was constructed, using the container's {{tt|push_back()}} member function whenever the iterator (whether dereferenced or not) is assigned to. Incrementing the {{tt|std::back_insert_iterator}} is a no-op.
{{tt|std::back_insert_iterator}} is that appends to a container for which it was constructedcontainer's {{tt|push_back()}} member function whenever the iterator (whether dereferenced or not) is assigned to. Incrementing the {{tt|std::back_insert_iterator}} is a no-op.


===Member types===
{{||
{{dcl list begin}}
{{|{{tt|container_type}}|{{tt|Container}}}}
{{dcl list hitem | Member type | Definition}}
}}
{{dcl list item | {{tt|container_type}} | {{tt|Container}}}}
{{dcl list end}}


===Member functions===
===Member functions===
{{dcl list begin}}
{{begin}}
{{dcl list template | cpp/iterator/inserter/dcl list constructor | back_insert_iterator}}
{{|cpp/iterator/inserter/constructor|back_insert_iterator}}
{{dcl list template | cpp/iterator/inserter/dcl list operator{{=}} | back_insert_iterator}}
{{|cpp/iterator/inserter/operator{{=}}|back_insert_iterator}}
{{dcl list template | cpp/iterator/inserter/dcl list operator* | back_insert_iterator}}
{{|cpp/iterator/inserter/operator*|back_insert_iterator}}
{{dcl list template | cpp/iterator/inserter/dcl list operator++ | back_insert_iterator}}
{{|cpp/iterator/inserter/|back_insert_iterator}}
{{dcl list end}}
{{end}}


===Member objects===
===Member objects===
{{dcl list begin}}
{{begin}}
{{dcl list hitem | Member name | Definition}}
{{hitem|Member name|Definition}}
{{dcl list item | {{tt|container}} {{mark|protected}} | a pointer of type {{tt|Container*}} }}
{{|{{tt|container}} {{mark|protected}}|a pointer of type {{tt|Container*}}}}
{{dcl list end}}
{{end}}
 
{{cpp/iterator/iterator/inherit|std::output_iterator_tag|void|void|void|void}}


===Example===
===Example===
{{example
{{example
|
|code=
| code=
#include <iostream>
#include <iostream>
#include <iterator>
#include <iterator>
#include <algorithm>
#include <>
#include <cstdlib>
 
int main()
int main()
{
{
     std::vector<int> v;
     std::vector<int> v;
     std::generate_n(std::back_insert_iterator<std::vector<int>>(v), // can be simplified
 
                    10, [](){return std::rand()%10;});             // with std::back_inserter
     std::generate_n(
     for(int n : v)
std::back_insert_iterator<std::vector<int>>(v),
//
10,
[]() { return ; }
);
 
     for (int n : v)
         std::cout << n << ' ';
         std::cout << n << ' ';
     std::cout << '\n';
     std::cout << '\n';
}
}
| output=
|output=
3 6 7 5 3 5 6 2 9 1
3 6 7 9
}}
}}


===See also===
===See also===
{{dcl list begin}}
{{begin}}
{{dcl list template | cpp/iterator/dcl list back_inserter}}
{{|cpp/iterator/back_inserter}}
{{dcl list template | cpp/iterator/dcl list front_insert_iterator}}
{{|cpp/iterator/front_insert_iterator}}
{{dcl list template | cpp/iterator/dcl list insert_iterator}}
{{|cpp/iterator/insert_iterator}}
{{dcl list end}}
{{end
 
}}

Latest revision as of 16:26, 18 September 2023