# std::back_insert_iterator< _Container > Class Template Reference

Inheritance diagram for std::back_insert_iterator< _Container >:

List of all members.

## Detailed Description

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

Turns assignment into insertion.

These are output iterators, constructed from a container-of-T. Assigning a T to the iterator appends it to the container using push_back.

Tip: Using the back_inserter function to create these iterators can save typing.

Definition at line 386 of file stl_iterator.h.

## Public Types

- typedef _Container container_type
- typedef _Distance difference_type
- typedef _Category iterator_category
- typedef _Pointer pointer
- typedef _Reference reference
- typedef _Tp value_type

## Public Member Functions

- back_insert_iterator (_Container &__x)
- back_insert_iterator & operator * ()
- back_insert_iterator operator++ (int)
- back_insert_iterator & operator++ ()
- back_insert_iterator & operator= (typename _Container::const_reference __value)

## Protected Attributes

- _Container * container

## Member Typedef Documentation

template<typename _Container>

typedef _Container std::back_insert_iterator< _Container >::container_type

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

Definition at line 394 of file stl_iterator.h.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>

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.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>

typedef _Category std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::iterator_category `[inherited]`

One of the tag types.

Definition at line 113 of file stl_iterator_base_types.h.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>

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.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>

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.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>

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.

## Constructor & Destructor Documentation

template<typename _Container>

std::back_insert_iterator< _Container >::back_insert_iterator | ( | _Container & | __x | ) | `[inline, explicit]`

The only way to create this iterator is with a container.

Definition at line 398 of file stl_iterator.h.

## Member Function Documentation

template<typename _Container>

back_insert_iterator& std::back_insert_iterator< _Container >::operator * | ( |  | ) | `[inline]`

Simply returns *this.

Definition at line 429 of file stl_iterator.h.

template<typename _Container>

back_insert_iterator std::back_insert_iterator< _Container >::operator++ | ( | int |  | ) | `[inline]`

Simply returns *this. (This iterator does not "move".).

Definition at line 439 of file stl_iterator.h.

template<typename _Container>

back_insert_iterator& std::back_insert_iterator< _Container >::operator++ | ( |  | ) | `[inline]`

Simply returns *this. (This iterator does not "move".).

Definition at line 434 of file stl_iterator.h.

template<typename _Container>

back_insert_iterator& std::back_insert_iterator< _Container >::operator= | ( | 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 doesn't really have a "position" in the container (you can think of the position as being permanently at the end, if you like). Assigning a value to the iterator will always append the value to the end of the container.

Definition at line 412 of file stl_iterator.h.

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

- stl_iterator.h