A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/RandomAccessIterator below:

class

<iterator>

std::random_access_iterator_tag
struct random_access_iterator_tag {};

Random-access iterator category

Empty class to identify the category of an iterator as a random-access iterator:

Random-access iterators


Random-access iterators are iterators that can be used to access elements at an arbitrary offset position relative to the element they point to, offering the same functionality as pointers.

Random-access iterators are the most complete iterators in terms of functionality. All pointer types are also valid random-access iterators.

There is not a single type of random-access iterator: Each container may define its own specific iterator type able to iterate through it and access its elements. But all random access iterators support -at least- the following operations:

property valid expressions Is default-constructible, copy-constructible, copy-assignable and destructible X a;
X b(a);
b = a;
Can be compared for equivalence using the equality/inequality operators
(meaningful when both iterator values iterate over the same underlying sequence). a == b
a != b
Can be dereferenced as an rvalue (if in a dereferenceable state). *a
a->m
For mutable iterators (non-constant iterators):
Can be dereferenced as an lvalue (if in a dereferenceable state). *a = t Can be incremented (if in a dereferenceable state).
The result is either also dereferenceable or a past-the-end iterator.
Two iterators that compare equal, keep comparing equal after being both increased.
++a
a++
*a++
Can be decremented (if a dereferenceable iterator value precedes it).
--a
a--
*a-- Supports the arithmetic operators + and - between an iterator and an integer value, or subtracting an iterator from another. a + n
n + a
a - n
a - b
Can be compared with inequality relational operators (<, >, <= and >=). a < b
a > b
a <= b
a >= b
Supports compound assignment operations += and -= a += n
a -= n
Supports the offset dereference operator ([]) a[n] property valid expressions Is default-constructible, copy-constructible, copy-assignable and destructible X a;
X b(a);
b = a;
Can be compared for equivalence using the equality/inequality operators
(meaningful when both iterator values iterate over the same underlying sequence). a == b
a != b
Can be dereferenced as an rvalue (if in a dereferenceable state). *a
a->m
For mutable iterators (non-constant iterators):
Can be dereferenced as an lvalue (if in a dereferenceable state). *a = t Can be incremented (if in a dereferenceable state).
The result is either also dereferenceable or a past-the-end iterator.
Two iterators that compare equal, keep comparing equal after being both increased.
++a
a++
*a++
Can be decremented (if a dereferenceable iterator value precedes it).
--a
a--
*a-- Supports the arithmetic operators + and - between an iterator and an integer value, or subtracting an iterator from another. a + n
n + a
a - n
a - b
Can be compared with inequality relational operators (<, >, <= and >=). a < b
a > b
a <= b
a >= b
Supports compound assignment operations += and -= a += n
a -= n
Supports the offset dereference operator ([]) a[n] Lvalues are swappable. swap(a,b)


Where X is a random-access iterator type, a and b are objects of this iterator type, n is a value of its difference type, and t is an object of the type pointed by the iterator type (or some other type that can be assigned to the lvalue returned by dereferencing an object of type X).

Constant iterators are iterators that do not fulfill the requirements of an output iterator; Dereferencing them yields a reference to a constant element (such as const T&).



See also
input_iterator_tag
Input iterator category (class)
output_iterator_tag
Output iterator category (class)
forward_iterator_tag
Forward iterator category (class)
bidirectional_iterator_tag
Bidirectional iterator category (class)
iterator
Iterator base class (class template)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4