These are output iterators, constructed from a container-of-T. Assigning a T to the iterator inserts it in the container at the iterator's position, rather than overwriting the value at that position.
(Sequences will actually insert a copy of the value before the iterator's position.)
Tip: Using the inserter function to create these iterators can save typing.
Definition at line 557 of file stl_iterator.h.
typedef _Container std::insert_iterator< _Container >::container_type |
A nested typedef for the type of whatever container you used.
Definition at line 566 of file stl_iterator.h.
typedef _Distance std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::difference_type [inherited] |
Distance between iterators is represented as this type.
Reimplemented in std::reverse_iterator< _Iterator >.
Definition at line 117 of file stl_iterator_base_types.h.
typedef _Category std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::iterator_category [inherited] |
typedef _Pointer std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::pointer [inherited] |
This type represents a pointer-to-value_type.
Reimplemented in __gnu_cxx::_Rope_const_iterator< _CharT, _Alloc >, __gnu_cxx::_Rope_iterator< _CharT, _Alloc >, std::_Bit_iterator, std::_Bit_const_iterator, and std::reverse_iterator< _Iterator >.
Definition at line 119 of file stl_iterator_base_types.h.
typedef _Reference std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::reference [inherited] |
This type represents a reference-to-value_type.
Reimplemented in __gnu_cxx::_Rope_const_iterator< _CharT, _Alloc >, __gnu_cxx::_Rope_iterator< _CharT, _Alloc >, std::_Bit_iterator, std::_Bit_const_iterator, and std::reverse_iterator< _Iterator >.
Definition at line 121 of file stl_iterator_base_types.h.
typedef _Tp std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::value_type [inherited] |
The type "pointed to" by the iterator.
Reimplemented in __gnu_cxx::sequence_buffer< _Sequence, _Buf_sz >.
Definition at line 115 of file stl_iterator_base_types.h.
std::insert_iterator< _Container >::insert_iterator | ( | _Container & | __x, | |
typename _Container::iterator | __i | |||
) | [inline] |
The only way to create this iterator is with a container and an initial position (a normal iterator into the container).
Definition at line 572 of file stl_iterator.h.
insert_iterator& std::insert_iterator< _Container >::operator * | ( | ) | [inline] |
insert_iterator& std::insert_iterator< _Container >::operator++ | ( | int | ) | [inline] |
Simply returns *this. (This iterator does not "move".).
Definition at line 628 of file stl_iterator.h.
insert_iterator& std::insert_iterator< _Container >::operator++ | ( | ) | [inline] |
Simply returns *this. (This iterator does not "move".).
Definition at line 623 of file stl_iterator.h.
insert_iterator& std::insert_iterator< _Container >::operator= | ( | typename _Container::const_reference | __value | ) | [inline] |
value | An instance of whatever type container_type::const_reference is; presumably a reference-to-const T for container<T>. |
The position is maintained such that subsequent assignments will insert values immediately after one another. For example,
// vector v contains A and Z insert_iterator i (v, ++v.begin()); i = 1; i = 2; i = 3; // vector v contains A, 1, 2, 3, and Z
Definition at line 599 of file stl_iterator.h.