在我的算法中,我有两个阶段:
1) 使用占用尽可能多 RAM 的大数据结构 X 用记录填充文件 2) 对文件进行排序。现在有很多内存,因为 X 被释放了
所以我想用 STXXL 处理文件及其排序。但是,在第一阶段,STXXL 缓存的空间非常有限,而在第二阶段应该有很多。
所以理想情况下,我想在第一阶段用小缓存创建一个 stxxl::vector,填充它,然后在排序期间增加它的大小以加快速度。但是,我找不到更改向量缓存大小的函数。
我看到的一个解决方案是在第一阶段写入一个普通的“虚拟”二进制文件,并从中创建一个 stxxl::vector,但这会导致空间的双重使用,因为“虚拟”文件和 stxxl ::vector 将在某个时候同时存在。那么使用 stxxl 的真正方法是什么?