Back to Arangodb

Random Access Traversal Concept

3rdParty/boost/1.78.0/libs/iterator/doc/RandomAccessTraversal.html

3.12.9.11.6 KB
Original Source

Random Access Traversal Concept

A class or built-in type X models the Random Access Traversal concept if the following expressions are valid and respect the stated semantics. In the table below, Distance is iterator_traits<X>::difference_type and n represents a constant object of type Distance.

Random Access Traversal Iterator Requirements (in addition to Bidirectional Traversal)
Expression
---
r += n
{
  Distance m = n;
  if (m >= 0)
    while (m--)
      ++r;
  else
    while (m++)
      --r;
  return r;
}

| | | a + n, n + a | X | { X tmp = a; return tmp += n; } | | | r -= n | X& | return r += -n | | | a - n | X | { X tmp = a; return tmp -= n; } | | | b - a | Distance | a < b ?distance(a,b) : -distance(b,a) | pre: there exists a value n of Distance such that a + n == b. b == a + (b - a). | | a[n] | convertible to T | *(a + n) | pre: a is a Readable Iterator | | a[n] = v | convertible to T | *(a + n) = v | pre: a is a Writable iterator | | a < b | convertible to bool | b - a > 0 | < is a total ordering relation | | a > b | convertible to bool | b < a | > is a total ordering relation | | a >= b | convertible to bool | !(a < b) | | | a <= b | convertible to bool | !(a > b) | | | iterator_traversal<X>::type | Convertible to random_access_traversal_tag | | |


View document source. Generated by Docutils from reStructuredText source.