C ++如何像deque这样的非连续容器的迭代器如何找到下一个元素

时间:2017-04-10 05:15:02

标签: c++

关注此here

我想知道非连续且不是链表的容器实际上知道在哪个地方找到下一个元素,因为它不能保证在这个元素之后?是否有一个额外的表格说deque的前x个块位于这个起始点,接下来的y块是从那里开始的,依此类推?

1 个答案:

答案 0 :(得分:0)

容器在内部保存必要的信息以直接访问元素,因为deque的内部实现基本上是块(向量)的双端队列。每个块都有索引的元素,一旦块已满,添加了另一个块,保持了索引的完整性,容器类保留了提供访问所需的信息,定位了正确的块,然后是所搜索元素的索引位置。

你可以阅读这篇伟大的文章,它将提供你所寻求的所有知识,甚至超过你所寻求的知识: https://www.codeproject.com/Articles/5425/An-In-Depth-Study-of-the-STL-Deque-Container

另外,要查看deque的简要实现,您可以查看堆栈溢出的已接受答案 What really is a deque in STL?