我使用二维的boost::multi_array来存储自定义结构的对象。问题是我有大量的这些对象,所以我需要的数组的索引超过了整数的范围。有没有可能使用long作为多数组的索引,或者你有没有其他关于如何存储这么大的数据集并保持它以适当的速度访问的建议?
kqlmhetl1#
official documentation声明索引类型是 unspecified,但是查看repository,可以看到定义最有可能是typedef std::ptrdiff_t index;因此,如果你编译一个x86 32位系统,你肯定会用尽可寻址内存,所以有限的indexes大小不是你的真实的问题。你唯一的选择是选择一个有足够内存的系统,它必须是一个超过2^32字节的系统,因此必须是一个64位的系统。2^64肯定足以表示你的多数组的维数。
typedef std::ptrdiff_t index
1条答案
按热度按时间kqlmhetl1#
official documentation声明索引类型是 unspecified,但是查看repository,可以看到定义最有可能是
typedef std::ptrdiff_t index
;因此,如果你编译一个x86 32位系统,你肯定会用尽可寻址内存,所以有限的indexes大小不是你的真实的问题。你唯一的选择是选择一个有足够内存的系统,它必须是一个超过2^32字节的系统,因此必须是一个64位的系统。2^64肯定足以表示你的多数组的维数。