std::vector的替代方案,用于存储对象序列

Alternative to std::vector to store a sequence of objects

本文关键字:存储 用于 对象 方案 vector std      更新时间:2023-10-16

我正在处理顺序访问的数百万个数据元素。元素很少增长和收缩,但以已知的块大小以可预测的方式进行。

我正在寻找一个类似于std::vector的有效集合,它不重新分配,但在多个内存块中保存数据。每当我将更多对象推入集合时,如果最后一个块耗尽,则创建并填充一个新块。我不希望有一个随机访问操作符。我不能使用std::list,因为性能问题和其他一些超出当前问题范围的问题。

是否有一个现成的集合,适合我的要求在boost或任何其他库。在我自己动手做饭之前,我要确保货架上没有现成的东西。

在我看来,最好的选择是将许多std::vector存储在b树中。B-Tree允许您在树遍历期间引用内存中的区域而无需实际访问它们,从而允许最小的文件访问。