基于链表的矢量

时间:2013-02-27 00:34:58

标签: c++ containers

我在考虑使用std::vector容器的缺点,并且想知道使用分块链接列表作为后端是否可以避免在向量扩展时发生的副本。

类似于this

我想我的问题是,这是一个实用的想法,我是否正确地假设从容器中读取与基于数组的向量具有相似的运行时间,而“增长”时间将大大减少?

2 个答案:

答案 0 :(得分:3)

您可以使用std::deque进行一些实验,这只是您的描述。

答案 1 :(得分:1)

您的解决方案的运行时(随机)访问权限将大于std::vector的访问权限。

为了访问元素N,您可能需要经过许多链接才能到达相应的块,然后通过块访问元素。

通过预先分配更大的尺寸,可以减少大矢量的性能。

如果频繁插入和删除,可能是向量是错误的数据结构。