Пространства имён
Варианты
Действия

Концепции C++: RandomAccessIterator

Материал из cppreference.com
< cpp‎ | concept

 
 
 
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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ExpressionReturnEquivalent expressionNotes
r += nIt&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 + nItIt temp = i;

return temp += n;

n + iIti + n
r -= nIt&return r +=-n;
i - nItIt temp = i;

return temp -= n;

n - iIti - n
b - adifferencenreturns n such that a+n==b
i[n]convertible to reference*(i + n)
a < bcontextually convertible to boolb - a >0Strict 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 > bcontextually convertible to boolb < aTotal ordering relation opposite to a < b
a >= bcontextually convertible to bool!(a < b)
a <= bcontextually 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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
close