c++ boost::multi_array 索引太大

c++ boost::multi_array index too large

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

谢谢!

中的official documentation states that the index type is unspecified, but looking into the repository,一看定义最有可能是typedef std::ptrdiff_t index

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