Example
See iterator_category
Definition
Defined in the standard header iterator, and in the nonstandard backward-compatibility header iterator.h.
Template parameters
None.
Model of
Assignable
Type requirements
None.
Public base classes
None.
Members
None.
New Members
None.
See also
iterator_category , Iterator Tags, iterator_traits , output_iterator_tag , input_iterator_tag , forward_iterator_tag random_access_iterator_tag
random_access_iterator_tag
Category: iterators
Component type: type
Description
Random_access_iterator_tag is an empty class: it has no member functions, member variables, or nested types. It is used solely as a "tag": a representation of the Random Access Iterator concept within the C++ type system. Specifically, it is used as a return value for the function iterator_category . Iterator_category takes a single argument, an iterator, and returns an object whose type depends on the iterator's category. Iterator_category 's return value is of type random_access_iterator_tag if its argument is a Random Access Iterator.
Example
See iterator_category.
Definition
Defined in the standard header iterator, and in the nonstandard backward-compatibility header iterator.h.
Template parameters
None.
Model of
Assignable.
Type requirements
None.
Public base classes
None.
Members
None.
New Members
None.
See also
iterator_category , Iterator Tags, iterator_traits , output_iterator_tag , input_iterator_tag , forward_iterator_tag , bidirectional_iterator_tag
Category: iterators
Component type: type
Description
Input_iterator is an iterator base class: it is intended that an iterator that is a model of Input Iterator, and whose value type and distance type are T and Distance , may be defined by inheriting from input_iterator [1]. Input_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_input_iterator : public input_iterator {
…
};
This declares my_input_iterator to be an Input Iterator whose value type is double and whose distance type is ptrdiff_t . If Iter is an object of class my_input_iterator , then iterator_category(Iter) will return input_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 an Input Iterator inherit from the base input_iterator . It is, however, required that the functions iterator_category , distance_type , and value_type be defined for every Input Iterator. (Or, if you are using the iterator_traits mechanism, that iterator_traits is properly specialized for every Input Iterator.) Since those functions are defined for the base input_iterator , the easiest way to ensure that are defined for a new iterator class is to derive that class from input_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 , output_iterator , forward_iterator , bidirectional_iterator , random_access_iterator
Category: iterators
Component type: type
Description
Output_iterator is an iterator base class: it is intended that an iterator that is a model of Output Iterator may be defined by inheriting from output_iterator [1]. Output_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_output_iterator : public output_iterator {
…
};
This declares my_output_iterator to be an Output Iterator. If Iter is an object of class my_output_iterator , then iterator_category(Iter) will return output_iterator_tag() , and distance_type and value_type will be undefined for objects of class my_output_iterator .
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
None. (Note that Output Iterators need have neither distance types nor value types.)
Model of
Assignable
Public base classes
None
Type requirements
None.
Public base classes
None.
Members
None.
Читать дальше