我正在对流网络进行迭代计算,在此期间我需要记录每个源对每个边缘上的流的贡献量。任何一条边上的流量平均是由 2% 的源引起的,所以我定义vector< map<int, double> > flow
,其中flow[e][s] = f
意味着边上的流量e
由于源s
是f
。在每次迭代中,每个f
inflow
都会更新。
该程序的峰值内存使用量接近 4 GB。这适用于(32 位)Linux 和 OS X,但它在 Windows 上崩溃(这似乎对每个进程施加了 2 GB 的限制)。
如何使用vector< map<int, double> >
接口实现基于磁盘的数据结构(或以其他方式解决此问题)?