我使用二维boost :: multi_array来存储自定义结构的对象。问题是我有大量的这些对象,因此我需要的数组索引超出了整数的范围。有没有可能使用long作为多数组的索引,或者你对如何存储这么大的数据集还有任何其他建议,并且仍能以合适的速度访问它吗?
谢谢!
答案 0 :(得分:3)
official documentation表示索引类型未指定,但查看repository,可以看到定义最有可能是typedef std::ptrdiff_t index
;
因此,如果您为x86 32位系统进行编译,那么无论如何您肯定会耗尽可寻址内存,因此有限大小的指标不是您真正的问题。您唯一的选择是选择一个具有足够内存的系统,该系统必须是一个超过2 ^ 32字节的系统,因此必须是64位。 2 ^ 64肯定足以代表多阵列的尺寸。