◐ Shell
clean mode source ↗

Концепции C++: RandomAccessIterator — cppreference.com

Материал из cppreference.com

<metanoindex/>

RandomAccessIterator является BidirectionalIterator которые могут быть перемещены, чтобы указать на любой элемент в постоянном время.

Оригинал:

A RandomAccessIterator is a BidirectionalIterator that can be moved to point to any element in constant time.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Стандартный указатель является примером такого типа, который удовлетворяет этой концепции.

Оригинал:

A standard pointer is an example of a type that satisfies this concept.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Требования

В дополнение к вышеуказанным требованиям, для типа It быть RandomAccessIterator, экземпляры a, b, i, и r из It должны:

Оригинал:

In addition to the above requirement, for a type It to be an RandomAccessIterator, instances a, b, i, and r of It must:

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Expression Return Equivalent expression Notes
r += n It& if(n>=0) while(n--) ++r; else while(n++) --r; return r;
  • n может быть как положительным, так и отрицательным

    Оригинал:

    n can be both positive or negative

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • Постоянные сложности (то есть, эквивалент выражения не может быть использована в качестве реализации)

    Оригинал:

    Constant complexity (that is, the equivalent expression cannot be used as implementation)

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

i + n It It temp = i; return temp += n;
n + i It i + n
r -= n It& return r += -n;
i - n It It temp = i; return temp -= n;
n - i It i - n
b - a difference n returns n such that a+n==b
i[n] convertible to reference *(i + n)
a < b contextually convertible to bool b - a > 0 Strict total ordering relation:
  • !(a < a)
  • если a < b то !(b < a)

    Оригинал:

    if a < b then !(b < a)

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • если a < b и b < c то a < c

    Оригинал:

    if a < b and b < c then a < c

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • a < b или b < a или a == b
    (точнее одно из выражений истинно)

    Оригинал:

    a < b or b < a or a == b
    (exactly one of the expressions is true)

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

a > b contextually convertible to bool b < a Total ordering relation opposite to a < b
a >= b contextually convertible to bool !(a < b)
a <= b contextually convertible to bool !(a > b)

Таблица Notes

  • It является типом реализации этой концепции

    Оригинал:

    It is the type implementing this concept

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • T это тип std::iterator_traits<It>::value_type

    Оригинал:

    T is the type std::iterator_traits<It>::value_type

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • reference это тип std::iterator_traits<It>::reference

    Оригинал:

    reference is the type std::iterator_traits<It>::reference

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • difference это тип std::iterator_traits<It>::difference_type

    Оригинал:

    difference is the type std::iterator_traits<It>::difference_type

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • i, a, b являются объектами типа It или const It

    Оригинал:

    i, a, b are objects of type It or const It

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • r является значение типа It&

    Оригинал:

    r is a value of type It&

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

  • n является целым числом от типа difference

    Оригинал:

    n is an integer of type difference

    Текст был переведён автоматически используя Переводчик Google.
    Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Приведенные выше правила подразумевают, что RandomAccessIterator также реализует LessThanComparable.

Оригинал:

The above rules imply that RandomAccessIterator also implements LessThanComparable.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

mutable RandomAccessiterator является BidirectionalIterator, что дополнительно удовлетворяет требованиям OutputIterator.

Оригинал:

A mutable RandomAccessiterator is a BidirectionalIterator that additionally satisfies the OutputIterator requirements.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.