我看到自 C++17 以来有一个新的迭代器,下面由 cppreference 中的屏幕截图列出。我很困惑。什么样的迭代器是随机访问而不是 C++ 中的连续存储?否则, ContiguousIterator 不比 RandomAccessIterator 强大吗?正确的?
然后这里的链接
我看到自 C++17 以来有一个新的迭代器,下面由 cppreference 中的屏幕截图列出。我很困惑。什么样的迭代器是随机访问而不是 C++ 中的连续存储?否则, ContiguousIterator 不比 RandomAccessIterator 强大吗?正确的?
然后这里的链接
一个具有随机访问迭代器的非连续容器是std::deque
. 引用 cppreference 网站:
与 相反
std::vector
,双端队列的元素不是连续存储的:典型的实现使用一系列单独分配的固定大小的数组。deques上常见操作的复杂度(效率)如下:
- 随机访问 - 常数O(1)
- 在末尾或开头插入或删除元素 - 常量O(1)
- 插入或删除元素 - 线性O(n)