std::insert_iterator - cppreference.com

From cppreference.com

Defined in header

<iterator>

template<classContainer>classinsert_iterator:publicstd::iterator<std::output_iterator_tag,void,void,void,void>(until C++17)template<classContainer>classinsert_iterator;(since C++17)std::insert_iterator is a

LegacyOutputIterator

that inserts elements into a container for which it was constructed, at the position pointed to by the supplied iterator. The container's insert() member function is called whenever the iterator (whether dereferenced or not) is assigned to. Incrementing the std::insert_iterator is a no-op.

Member types

Member type Definition iterator_categorystd::output_iterator_tagvalue_typevoiddifference_typepointervoidreferencevoidcontainer_typeContainerMember 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)Member functions

Member objects

Member name Definition container(protected member object)a pointer of type Container*iter(protected member object)an iterator of type Container::iterator(until C++20)ranges::iterator_t<Container>(since C++20)Example

Run this code

#include<algorithm>#include<iostream>#include<iterator>#include<list>#include<vector>intmain(){std::vector<int>v{1,2,3,4,5};std::list<int>l{-1,-2,-3};std::copy(v.begin(),v.end(),// may be simplified with std::inserterstd::insert_iterator<std::list<int>>(l,std::next(l.begin())));for(intn:l)std::cout<<n<<' ';std::cout<<'\n';}Output:

-1 1 2 3 4 5 -2 -3 See also