我想创建一个巨大的整数数组 128 x 18,000,000,它比 C++ 的最大数组/向量大小最大,如 C++ 中是否存在最大数组长度限制?.
一种概念方法是将一对 int 存储为 long,其中前 32 位是第一个整数,后 32 位是第二个整数。问题是我该怎么做?因为,每次我要使用组成 long 的两个整数时,我都需要一些快速高效的东西。如何将一个 long 拆分为两个,或者如何将 2 个 int 存储为 long?
原始分配:
int nof1=64;
int nof2=18000000;
int *hugeArray;
int size = 2 * nof1 * nof2;
hugeArray = new int[size];
我有 16Gb 的 Ram 和一个带有 gcc 的 64 位 Ubuntu 12.04。因此,主存储器不是问题。不过,我还可以使用具有相同操作系统的 32GB PC,因此无需担心 RAM。
任何建议,将不胜感激。提前致谢。