# std::insert_iterator< _Container > Class Template Reference

Turns assignment into insertion. More...

`#include <stl_iterator.h>`

Inheritance diagram for std::insert_iterator< _Container >:

[legend]
Collaboration diagram for std::insert_iterator< _Container >:

[legend]
List of all members.

## Public Types

typedef _Container | container_type
| A nested typedef for the type of whatever container you used.

## Public Methods

| insert_iterator (_Container &__x, typename _Container::iterator __i)
insert_iterator & | operator= (const typename _Container::const_reference __value)
insert_iterator & | operator * ()
| Simply returns *this.
insert_iterator & | operator++ ()
| Simply returns *this. (This %iterator does not "move".).
insert_iterator & | operator++ (int)
| Simply returns *this. (This %iterator does not "move".).

## Detailed Description

### template<typename _Container>
class std::insert_iterator< _Container >

Turns assignment into insertion.

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 477 of file stl_iterator.h.

## Member Typedef Documentation

template<typename _Container>
typedef _Container std::insert_iterator< _Container >::container_type

| A nested typedef for the type of whatever container you used. Definition at line 486 of file stl_iterator.h.

## Constructor & Destructor Documentation

template<typename _Container>
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 492 of file stl_iterator.h.

## Member Function Documentation

template<typename _Container>
insert_iterator& std::insert_iterator< _Container >::operator * | ( |  | ) | `[inline]`

| Simply returns *this. Definition at line 528 of file stl_iterator.h.

template<typename _Container>
insert_iterator& std::insert_iterator< _Container >::operator++ | ( | int |  | ) | `[inline]`

| Simply returns *this. (This %iterator does not "move".). Definition at line 536 of file stl_iterator.h.

template<typename _Container>
insert_iterator& std::insert_iterator< _Container >::operator++ | ( |  | ) | `[inline]`

| Simply returns *this. (This %iterator does not "move".). Definition at line 532 of file stl_iterator.h.

template<typename _Container>
insert_iterator& std::insert_iterator< _Container >::operator= | ( | const typename _Container::const_reference | __value | ) | `[inline]`

Parameters:

  value | An instance of whatever type container_type::const_reference is; presumably a reference-to-const T for container<T>.

Returns:
  This %iterator, for chained operations.

This kind of %iterator maintains its own position in the container. Assigning a value to the %iterator will insert the value into the container at the place before the %iterator.

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 519 of file stl_iterator.h.

The documentation for this class was generated from the following file:

- stl_iterator.h