C++如何存储和读取大量数据(超过2GB)
先上一段代码
double Find_Delta(...)
{...}
int main()
{
double * Delta = new double[4e8];
for (int i = 0; i < 4e8; i++)
{
Delta[i] = Find_Delta(...);
}
......
......
......
}
求助:现在的情况是我必须要存储这些Delta数据因为在之后的计算中要多次用到,而且这个Delta计算起来很慢,不可能在每次使用时再重新计算一次。所以我用new建立了一个动态数组想要把这些Delta数据存储在堆内存中。但问题是这个数组太大有2GB多,已经超过了堆内存(大概是2GB)。
请问大家一般会如何处理这种问题呢?是不是必须要把数据存储到硬盘中了?我是新手目前只会用ofstream & ifstream,但I/O速度肯定很慢。各位大侠能否推荐几种快速有效的方法呢?唯一的要求就是在读取数据时能够快速的定位数据。比如说我存储了4亿个数据,现在我要读取第7640848个至第9640848个数据。
万分感谢!