The Iterator requirements describe types that can be used to identify and traverse the elements of a container.
Iterator is the base set of requirements used by other iterator types: InputIterator, OutputIterator, ForwardIterator, BidirectionalIterator, and RandomAccessIterator. Iterators can be thought of as an abstraction of pointers.
The type It
satisfies Iterator if.
It
satisfies CopyConstructible, and It
satisfies CopyAssignable, and It
satisfies Destructible, and It
satisfy Swappable, and std::iterator_traits<It>
has member typedefs value_type
, difference_type
, reference
, pointer
, and iterator_category
, and Given.
r
, an lvalue of type It
. The following expressions must be valid and have their specified effects:
Expression | Return Type | Precondition |
---|---|---|
*r | unspecified |
r is dereferenceable (see below) |
++r |
It& |
r is incrementable (the behavior of the expression ++r is defined) |
Iterators for which the behavior of the expression *i
is defined are called dereferenceable.
Iterators are not dereferenceable if.
specifies that objects of a type can be incremented and dereferenced (concept) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/named_req/Iterator