std :: size和std :: map的最大大小?

时间:2012-10-24 17:06:27

标签: c++ map set

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

谢谢!

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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范围 }。这些是无与伦比的价值观。

答案 2 :(得分:1)

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

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