std::insert_iterator
Iterator concepts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator primitives | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Algorithm concepts and utilities | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Indirect callable concepts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Common algorithm requirements | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Utilities | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Defined in header <iterator>
|
||
template
<
class Container >
class insert_iterator :
public
std::iterator
<
std::output_iterator_tag, |
(until C++17) | |
template
<
class Container >
class insert_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
Member types
Member type | Definition | ||||
iterator_category
|
std::output_iterator_tag | ||||
value_type
|
void | ||||
difference_type
|
|
||||
pointer
|
void | ||||
reference
|
void | ||||
container_type
|
Container
|
Member types |
(until C++17) |
Member functions
constructs a new insert_iterator (public member function) |
|
inserts an object into the associated container (public member function) |
|
no-op (public member function) |
|
no-op (public member function) |
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
#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
See also
creates a std::insert_iterator of type inferred from the argument (function template) |
|
iterator adaptor for insertion at the end of a container (class template) |
|
iterator adaptor for insertion at the front of a container (class template) |