random_access_iterator<T
Distance>
 |
 |
| Category: iterators |
Component type: type |
Description
Random_access_iterator is an iterator base class: it is intended that an
iterator that is a model of Random Access Iterator
and whose value type
and distance type are T and Distance
may be defined by inheriting from
random_access_iterator<T
Distance> [1]. Random_access_iterator is entirely empty: it has no
member functions
member variables
or nested types. It exists solely
to simplify the definition of the functions iterator_category
distance_type
and value_type.
Example
class my_random_access_iterator : public random_access_iterator<double>
{
...
};
This declares my_random_access_iterator to be a Random Access Iterator whose
value type is double and whose distance type is ptrdiff_t.
If Iter is an object of class my_random_access_iterator
then
iterator_category(Iter) will return random_access_iterator_tag()
value_type(Iter) will return (double*) 0
and distance_type(Iter)
will return (ptrdiff_t*) 0.
Definition
Defined in the standard header iterator
and in the
nonstandard backward-compatibility header iterator.h.
This class is no longer part of the C++ standard
although
it was present in early drafts of the standard. It is retained
in this implementation for backward compatibility.
Template parameters
|
Parameter
|
Description
|
Default
|
|
T
|
The iterator's value type
|
|
|
Distance
|
The iterator's distance type
|
ptrdiff_t
|
Model of
Assignable
Public base classes
None
Type requirements
The distance type must be a signed integral type.
Public base classes
None.
Members
None.
New Members
None.
Notes
[1]
It is not required that a Random Access Iterator inherit from
the base random_access_iterator. It is
however
required that the
functions iterator_category
distance_type
and
value_type be defined for every Random Access Iterator.
(Or
if you are using the iterator_traits mechanism
that
iterator_traits is properly specialized for every
Random Access Iterator.) Since those functions are defined for
the base random_access_iterator
the easiest way to ensure that are
defined for a new type is to derive that class from
random_access_iterator and rely on the derived-to-base standard
conversion of function arguments.
See also
The Iterator Tags overview
iterator_traits
iterator_category
value_type
distance_type
input_iterator
output_iterator
forward_iterator
bidirectional_iterator
Copyright ©
1999 Silicon Graphics
Inc. All Rights Reserved.
TrademarkInformation