c ++ vector / linked list hybrid

时间:2011-11-29 13:04:06

标签: c++ data-structures vector linked-list hybrid

c ++中是否存在std容器,其作用类似于矢量和链接列表之间的混合。我的意思是一个数据结构,它克服了std :: vector的频繁重新分配开销和潜在的超额内存分配,相反,当结构用完空间时,它会添加一个指向下一个分配片段的指针,并且只有当片段数达到时才会一定值,整个结构被解碎成一个连续的新块,片段数被设置回0。

2 个答案:

答案 0 :(得分:4)

如上所述,std::deque接近您的要求。我只是想在std::vectorstd::deque之间添加这种比较,我觉得这很有帮助。 An In-Depth Study of the STL Deque Container

答案 1 :(得分:3)

std::deque是与您描述的最接近的标准容器。然而,它并非完全(例如,它几乎必须是数组的数组而不是数组列表,因为后者不允许进行常量时间元素访问)。 / p>

根据您的实际要求,它可能足够接近。