外部存储器数据结构替换地图矢量

zoo*_*zoo 6 c++ memory algorithm stl data-structures

我正在流网络上进行迭代计算,在此期间我需要记录每个源对每个边缘流量的贡献.任何一条边上的流量都是平均来源的2%,所以我定义vector< map<int, double> > flow,这flow[e][s] = f意味着e源边缘的流量sf.在每次迭代,每次fflow得到更新.

该程序的峰值内存使用量接近4 GB.这适用于(32位)Linux和OS X,但它在Windows上崩溃(似乎每个进程限制2 GB).

如何使用vector< map<int, double> >接口实现基于磁盘的数据结构(或以其他方式解决此问题)?

Dan*_*Dan 3

我已将STXXL用于类似类型的场景。可能值得研究一下。