std::insert_iterator< Container > Class Template Reference

Turns assignment into insertion. More...

#include <stl_iterator.h>

Inheritance diagram for std::insert_iterator< Container >:

Inheritance graph
[legend]
Collaboration diagram for std::insert_iterator< Container >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef Container container_type
 A nested typedef for the type of whatever container you used.
typedef Category iterator_category
 One of the tag types.
typedef Type value_type
 The type "pointed to" by the iterator.
typedef Distance difference_type
 Distance between iterators is represented as this type.
typedef Pointer pointer
 This type represents a pointer-to-value_type.
typedef Reference reference
 This type represents a reference-to-value_type.

Public Member Functions

 insert_iterator (Container &x, typename Container::iterator __i)
insert_iteratoroperator= (const typename Container::const_reference value)
insert_iteratoroperator * ()
 Simply returns *this.
insert_iteratoroperator++ ()
 Simply returns *this. (This iterator does not "move".).
insert_iteratoroperator++ (int)
 Simply returns *this. (This iterator does not "move".).

Protected Attributes

Container * container
Container::iterator iter

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

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Category std::iterator< Category, Type, Distance, Pointer, Reference >::iterator_category [inherited]

One of the tag types.

Definition at line 107 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Type std::iterator< Category, Type, 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 109 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Distance std::iterator< Category, Type, Distance, Pointer, Reference >::difference_type [inherited]

Distance between iterators is represented as this type.

Reimplemented in std::reverse_iterator< Iterator >, and __gnu_cxx::normal_iterator< Iterator, Container >.

Definition at line 111 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Pointer std::iterator< Category, Type, Distance, Pointer, Reference >::pointer [inherited]

This type represents a pointer-to-value_type.

Reimplemented in std::Bit_iterator, std::Bit_const_iterator, std::reverse_iterator< Iterator >, __gnu_cxx::normal_iterator< Iterator, Container >, __gnu_cxx::Rope_const_iterator< CharT, Alloc >, and __gnu_cxx::Rope_iterator< CharT, Alloc >.

Definition at line 113 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Reference std::iterator< Category, Type, Distance, Pointer, Reference >::reference [inherited]

This type represents a reference-to-value_type.

Reimplemented in std::Bit_iterator, std::Bit_const_iterator, std::reverse_iterator< Iterator >, __gnu_cxx::normal_iterator< Iterator, Container >, __gnu_cxx::Rope_const_iterator< CharT, Alloc >, and __gnu_cxx::Rope_iterator< CharT, Alloc >.

Definition at line 115 of file stl_iterator_base_types.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 495 of file stl_iterator.h.


Member Function Documentation

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

References std::insert_iterator< Container >::container, and std::insert_iterator< Container >::iter.

template<typename Container>
insert_iterator& std::insert_iterator< Container >::operator * (  )  [inline]

Simply returns *this.

Definition at line 531 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 535 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 539 of file stl_iterator.h.


The documentation for this class was generated from the following file:
Generated on Wed Jan 3 19:45:45 2007 for libstdc++-v3 Source by  doxygen 1.5.1