Iterator

The Iterator concept describes types that can be used to identify and traverse the elements of a container.

Iterator is the base concept used by other iterator types: InputIterator, OutputIterator, ForwardIterator, BidirectionalIterator, and RandomAccessIterator. Iterators can be thought of as an abstraction of pointers.

Requirements

The type It satisfies Iterator if.

Given.

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 (see below)

Dereferenceable iterators

Iterators for which the behavior of the expression *i is defined are called dereferenceable.

Iterators are not dereferenceable if.

  • they are past-the-end iterators (including pointers past the end of an array) or before-begin iterators. Such iterators may be dereferenceable in a particular implementation, but the library never assumes that they are.
  • they are singular iterators, that is, iterators that are not associated with any sequence. A null pointer, as well as a default-constructed pointer (holding an indeterminate value) is singular
  • they were invalidated by one of the iterator-invalidating operations on the sequence to which they refer.

Iterators for which the behavior of the expression ++i is defined are called incrementable.

See also

doc_CPP
2016-10-11 09:58:58
Comments
Leave a Comment

Please login to continue.