std::size 和 std::map 的最大大小是多少?有没有办法增加这个数字?
谢谢!
Container::max_size()
您可以通过调用它来获得每个标准库容器的最大大小。如果您在编译时需要理论上的最大大小值,请使用std::numeric_limits<Container::size_type>::max()
.
任何标准容器的最大尺寸由container<T>::max_size()
方法给出。在一般情况下,此大小可能(并且将)小于 的范围container<T>::size_type
。
的范围container::size_type
可以通过 获得std::numeric_limits
,但是,请再次记住,容器不保证它们的最大尺寸可以达到它们的全部范围size_type
。
另请注意,它返回容器中元素的container<T>::max_size()
最大数量,而返回. 这些都是无可比拟的价值。std::numeric_limits<container<T>::size_type>::max()
size_type
理论限制是size_t
可以包含的最大数量,通常用于返回容器中的元素数量。对于大多数 32 位平台,它是 2^32,对于大多数 64 位平台,它是 2^64,但实际上这是实现定义的,标准中没有严格的限制。
但实际上任何容器的可能最大大小要小得多,因为它受到可用内存地址空间和可用空闲内存的限制。