我正在寻找实现具有以下属性的c ++容器对象:
在任何外部库中是否有满足这些要求的容器,或者在这种情况下我是否必须实现自己的容器?
正如一些评论所指出的,并非所有期望的属性都可以一起实现。我应该考虑到这一点,并且我有一个实现。由于不可能完全连续,所以可以容纳一些不连续性。例如,数据容器最初为10个元素分配空间,当达到上限时,将另一块内存分配为前一个块的两倍,但不会将现有元素复制到该新块。相反,它用我放入的新元素填充新块。这可以最大限度地减少不连续的数量。
那么,是否有一个已经实现的数据结构?
答案 0 :(得分:3)
恕我直言,最接近您需要的数据结构是 STL中的deque。基本上它存储了一大堆连续的记忆和 提供随机访问迭代器和push_back的稳定性问题 (尽管迭代器无效,但您的元素仍保持在同一位置)。 约束的唯一问题是内存不连续 无处不在但正如其他人评论的那样,如果您愿意,您的需求是不兼容的 完全满足他们所有人。 顺便说一下,这个容器的一个好东西就是你也可以继续推进 前面。