C++ 概念: RandomAccessIterator

来自cppreference.com
< cpp‎ | concept

 
 
C++ 的概念

|- class="t-nv-h1" | colspan="5" | 基础 |- | |- |

DefaultConstructible
CopyAssignable
CopyConstructible

|

|-

|- class="t-nv-h1" | colspan="5" | 库 |- | |- |

|

NullablePointer(C++11)
Hash(C++11)
Allocator

|-

|- class="t-nv-h1" | colspan="5" | 容器 |- | |- |

|

|-

容器元素

| |- |

CopyInsertable(C++11)
MoveInsertable(C++11)

|

|-

|- class="t-nv-h1" | colspan="5" | 迭代器 |- | |- |

|

ForwardIterator
BidirectionalIterator
RandomAccessIterator

|-

|- class="t-nv-h1" | colspan="5" | 随机数 |- | |- |

SeedSequence(C++11)
RandomNumberEngine(C++11)

|

|-

|- class="t-nv-h1" | colspan="5" | 并发 |- | |- |

BasicLockable(C++11)
Lockable(C++11)
TimedLockable(C++11)

|

Mutex(C++11)
TimedMutex(C++11)

|-

|- class="t-nv-h1" | colspan="5" | 其它 |- | |- |

|

UnaryTypeTrait(C++11)
BinaryTypeTrait(C++11)
TransformationTrait(C++11)
TrivialClock(C++11)

|-

 
一个RandomAccessIterator是一个可移动的BidirectionalIterator指向任何元素在固定的时间.
原文:
A RandomAccessIterator is a BidirectionalIterator that can be moved to point to any element in constant time.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
一个标准的指针是一个类型,满足这个概念的一个例子.
原文:
A standard pointer is an example of a type that satisfies this concept.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 要求

除上述要求外,类型ItRandomAccessIterator,实例abirIt必须:
原文:
In addition to the above requirement, for a type It to be an RandomAccessIterator, instances a, b, i, and r of It must:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
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 Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • 常量复杂度(即,相当于表达式不能被用作实施)
    原文:
    Constant complexity (that is, the equivalent expression cannot be used as implementation)
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
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 Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • 如果a < bb < c然后a < c
    原文:
    if a < b and b < c then a < c
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • a < bb < aa == b
    (正是其中的一个表达式为true)
    原文:
    a < b or b < a or a == b
    (exactly one of the expressions is true)
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
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)

[编辑] 表注意事项

  • It是实现这一概念的类型
    原文:
    It is the type implementing this concept
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • T是类型std::iterator_traits<It>::value_type
    原文:
    T is the type std::iterator_traits<It>::value_type
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • reference是类型std::iterator_traits<It>::reference
    原文:
    reference is the type std::iterator_traits<It>::reference
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • difference是类型std::iterator_traits<It>::difference_type
    原文:
    difference is the type std::iterator_traits<It>::difference_type
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • iab类型的对象Itconst It
    原文:
    i, a, b are objects of type It or const It
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • r是一个值类型It&
    原文:
    r is a value of type It&
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
  • n是的整数类型difference
    原文:
    n is an integer of type difference
    这段文字是通过 Google Translate 自动翻译生成的。
    您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
上述规则意味着RandomAccessIterator的实现LessThanComparable.
原文:
The above rules imply that RandomAccessIterator also implements LessThanComparable.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
一个mutable RandomAccessiterator是一个BidirectionalIterator,另外满足OutputIterator要求的.
原文:
A mutable RandomAccessiterator is a BidirectionalIterator that additionally satisfies the OutputIterator requirements.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里