std::front_insert_iterator< Container > Class Template Reference

Turns assignment into insertion. More...

#include <stl_iterator.h>

Inheritance diagram for std::front_insert_iterator< Container >:

Inheritance graph
[legend]
Collaboration diagram for std::front_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

 front_insert_iterator (Container &x)
 The only way to create this iterator is with a container.
front_insert_iteratoroperator= (typename Container::const_reference value)
front_insert_iteratoroperator * ()
 Simply returns *this.
front_insert_iteratoroperator++ ()
 Simply returns *this. (This iterator does not "move".).
front_insert_iterator operator++ (int)
 Simply returns *this. (This iterator does not "move".).

Protected Attributes

Container * container

Detailed Description

template<typename Container>
class std::front_insert_iterator< Container >

Turns assignment into insertion.

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

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

Definition at line 405 of file stl_iterator.h.


Member Typedef Documentation

template<typename Container>
typedef Container std::front_insert_iterator< Container >::container_type

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

Definition at line 413 of file stl_iterator.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 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 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.

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.


Constructor & Destructor Documentation

template<typename Container>
std::front_insert_iterator< Container >::front_insert_iterator ( Container &  x  )  [inline, explicit]

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

Definition at line 416 of file stl_iterator.h.


Member Function Documentation

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

Simply returns *this.

Definition at line 438 of file stl_iterator.h.

template<typename Container>
front_insert_iterator std::front_insert_iterator< Container >::operator++ ( int   )  [inline]

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

Definition at line 446 of file stl_iterator.h.

template<typename Container>
front_insert_iterator& std::front_insert_iterator< Container >::operator++ (  )  [inline]

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

Definition at line 442 of file stl_iterator.h.

template<typename Container>
front_insert_iterator& std::front_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 front, if you like). Assigning a value to the iterator will always prepend the value to the front of the container.

Definition at line 430 of file stl_iterator.h.

References std::front_insert_iterator< Container >::container.


The documentation for this class was generated from the following file:
Generated on Fri Oct 20 15:49:26 2006 for libstdc++-v3 Source by  doxygen 1.4.7