c++ boost::multi_array 索引太大

问题描述 投票:0回答:1

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

c++ boost boost-multi-array
1个回答
3
投票

官方文档指出索引类型是未指定,但是查看存储库,我们发现最有可能的定义是

typedef std::ptrdiff_t index

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

© www.soinside.com 2019 - 2024. All rights reserved.