std :: size和std :: map的最大大小是多少?有没有办法增加这个数字?
谢谢!
答案 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,但实际上这是实现定义的,标准中没有强大的限制。
但实际上,任何容器的最大可能尺寸都要小得多,因为它受可用内存地址空间和可用内存空间的限制。