std::insert_iterator
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Iterator library
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)(C++20)(C++23)(C++20)(C++20)
(deprecated in C++17)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++14)
(C++11)
(C++11)
(C++20)(C++20)
(C++20)(C++20)
insert_iterator
(C++20)
(C++20)
(C++20)
(C++23)
(C++23)
(C++23)
(C++23)
(C++23)
(C++11)(C++14)
(C++14)(C++14)
std::insert_iterator
Defined in header
<iterator>
template< class Container >
(until C++17)
class insert_iterator : public std::iterator <std::output_iterator_tag,
template< class Container >
class insert_iterator;
(since C++17)
class insert_iterator;
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.
[edit] Member types
Member type
Definition
iterator_category
std::output_iterator_tag
value_type
void
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>.
[edit] Member functions
[edit] 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)
[edit] Example
Run this code
#include <algorithm> #include <iostream> #include <iterator> #include <list> #include <vector> int main() { 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::inserter std::insert_iterator<std::list <int>>(l, std::next (l.begin()))); for (int n : l) std::cout << n << ' '; std::cout << '\n'; }
Output:
-1 1 2 3 4 5 -2 -3