【发布时间】:2014-06-06 05:53:00
【问题描述】:
我了解随机访问迭代器如何为std::vector 之类的连续容器工作:迭代器只维护一个指向当前元素的指针,并且任何加法/减法都应用于该指针。
但是,我对如何为非连续容器实现类似功能感到困惑。我对std::deque:iterator 工作原理的第一个猜测是,它维护了一个指向它包含的连续内存组的某个表的指针,但我不确定。
典型的标准库将如何实现这一点?
【问题讨论】:
-
谁说
deque不连续?它通常实现为动态数组。 -
@ooga from here
As opposed to std::vector, the elements of a deque are not stored contiguously: typical implementations use a sequence of individually allocated fixed-size arrays. -
@ooga,那它和向量有什么不同呢?
-
@BryanChen 我想知道这是什么意思?一个“序列......数组”?
-
一个典型的
deque的图表:kremer.cpsc.ucalgary.ca/STL/1024x768/deque.html 和一篇看起来可能有帮助的文章(虽然我只是看了一眼):secweb.cs.odu.edu/~zeil/cs361/web/website/Lectures/deques/page/…
标签: c++ iterator deque random-access