我有一个非常大的向量(数百万个1024字节的条目)。我超出了向量的最大尺寸(会得到一个内存分配异常)。我正在对项向量进行递归操作,需要访问向量中的其他元素。这些操作需要快速完成。我试图避免为了速度而写入磁盘。是否有其他不需要写入磁盘的存储数据的方法?如果必须将数据写入磁盘,最理想的方法是什么?
编辑一些更多细节。
我对数据集执行的操作是基于向量中的其他数据点递归生成字符串。读入数据时,数据已排序。数据集范围从50,000到50,000,0000。
编辑一些更多细节。
我对数据集执行的操作是基于向量中的其他数据点递归生成字符串。读入数据时,数据已排序。数据集范围从50,000到50,000,0000。
std::deque
代替;这应该能让你在耗尽内存之前存储更多的元素。 - Praetorianstd::vector
的实现采用容量加倍的重新分配策略,这意味着如果您经常扩展向量的大小,它可能会使用比存储可寻址元素所需的更多存储空间。 - Charles Salvia