【发布时间】:2011-09-14 09:19:11
【问题描述】:
我需要一个同时具有向量和列表属性的容器。我需要快速随机访问容器中的元素,但我还需要能够在不移动其他元素的情况下移除容器中间的元素。我还需要能够遍历容器中的所有元素,并且一目了然(无需迭代)容器中有多少元素。
经过一番思考,我想出了如何创建这样一个容器,使用向量作为基本容器,并将实际存储的数据包装在一个结构中,该结构还包含记录元素是否有效的字段,并且指向向量中下一个/上一个有效元素的指针。结合一些重载等,听起来它应该相当透明并满足我的要求。
但在我真正开始创建另一个容器之前,我很好奇是否有人知道实现这个东西的现有库?我宁愿使用有效的东西,也不愿花时间调试自定义实现。我查看了 Boost 库(我已经在使用),但没有在其中找到它。
【问题讨论】:
-
所以如果我插入100万个元素,然后我删除元素1-499999,然后我删除500001-999998,然后我删除元素500000......剩下的应该是collection[0]和collection [1]?还是应该是 collection[0] 和 collection[999999]?此外,当您遍历集合时,元素是否必须按照添加它们的顺序返回?
-
它将是 collection[0] 和 collection[999999]。我使用元素的索引来引用该特定元素(因此需要随机访问),所以我不希望该索引改变我。而且我不在乎遍历列表的顺序是什么,只要我只需要触摸有效元素即可。
-
你想要这个数据结构 for 做什么?