我今天正在阅读一些文本,它指出,由于std :: deque确实具有随机访问迭代器,因此其项检索速率的时间复杂度为O(1)。尽管我同意项目检索的时间复杂度为O(1)的事实,但是拥有随机访问迭代器与它有什么关系?
答案 0 :(得分:1)
RandomAccessIterator
概念要求+
和-
操作必须在恒定时间内实现:
来自[iterator.concept.random.access]:
RandomAccessIterator概念增加了对使用+ =,+,-=和-进行恒定时间前进的支持,以及使用-进行恒定时间的距离计算。随机访问迭代器还通过下标支持数组符号。
这意味着任何实现随机访问迭代器的符合标准的容器都必须提供常量元素检索。