如何初始化大尺寸的1000000x1000000的二维阵列?

ann*_*ist 0 c++ linux gcc memory-management multidimensional-array

我正在使用g ++编译器在ubuntu中开发一个cpp项目,我需要创建一个大小为1000000x1000000 = 10 ^ 12个元素的矩阵,其条目是布尔变量.但是我的g ++编译器允许我将空间分配给大约1000x1000个元素.如何克服这个巨大的矩阵分配空间的问题?

us2*_*012 6

你不能,除非你有至少125GB的RAM(假设你只需要一个比特bool).如果你真的需要大的结构,你需要购买大量的RAM或考虑磁盘上的算法.

但是解决问题的可能性实际上并不需要10 ^ 6 x 10 ^ 6阵列,所以你应该首先重新考虑你的算法.

有些库允许磁盘上的数据结构(http://roomy.sourceforge.net/可以想到,另一个是我现在无法回想起的名字),但磁盘访问速度比RAM低几个数量级.除非您仔细考虑过这一点,否则您可能对基于磁盘的解决方案的性能不满意.