C++ boost::multi_array索引太大



我正在使用二维提升::multi_array来存储自定义结构的对象。问题是我有大量的这些对象,因此我需要的数组索引超出了整数的范围。是否有可能使用 long 作为多数组的索引,或者您对如何存储这么大的数据集并仍然以不错的速度保持其可访问性有任何其他建议吗?

谢谢!

官方文档指出索引类型未指定,但查看存储库,可以看到定义很可能是typedef std::ptrdiff_t index;

因此,如果您为 x86 32 位系统编译,无论如何您肯定会耗尽可寻址内存,因此指示的有限大小不是您的真正问题。您唯一的选择是选择一个具有足够内存的系统,该系统必须超过 2^32 字节,因此必须是 64 位系统。2^64 肯定足以表示多数组的维度。

相关内容

最新更新