# iterator Struct Template Reference

Inheritance diagram for iterator:

List of all members.

## Detailed Description

### template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
struct std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >

This class does nothing but define nested typedefs. Iterator classes can inherit from this class to save some work. The typedefs are then used in specializations and overloading.

In particular, there are no default implementations of requirements such as `operator++` and the like. (How could there be?)

Definition at line 106 of file stl_iterator_base_types.h.

## Public Types

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

## Member Typedef Documentation

typedef _Distance difference_type

| Distance between iterators is represented as this type. Reimplemented in reverse_iterator. Definition at line 113 of file stl_iterator_base_types.h.

typedef _Category iterator_category

| One of the tag types. Definition at line 109 of file stl_iterator_base_types.h.

typedef _Pointer pointer

| This type represents a pointer-to-value_type. Reimplemented in reverse_iterator. Definition at line 115 of file stl_iterator_base_types.h.

typedef _Reference reference

| This type represents a reference-to-value_type. Reimplemented in reverse_iterator. Definition at line 117 of file stl_iterator_base_types.h.

typedef _Tp value_type

| The type "pointed to" by the iterator. Definition at line 111 of file stl_iterator_base_types.h.

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

- stl_iterator_base_types.h