4

std::size 和 std::map 的最大大小是多少?有没有办法增加这个数字?

谢谢!

4

3 回答 3

4

Container::max_size()您可以通过调用它来获得每个标准库容器的最大大小。如果您在编译时需要理论上的最大大小值,请使用std::numeric_limits<Container::size_type>::max().

于 2012-10-24T17:10:25.353 回答
3

任何标准容器的最大尺寸由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

于 2012-10-24T17:15:35.303 回答
1

理论限制是size_t可以包含的最大数量,通常用于返回容器中的元素数量。对于大多数 32 位平台,它是 2^32,对于大多数 64 位平台,它是 2^64,但实际上这是实现定义的,标准中没有严格的限制。

但实际上任何容器的可能最大大小要小得多,因为它受到可用内存地址空间和可用空闲内存的限制。

于 2012-10-24T17:16:25.957 回答