在STL中,像vector、list、string这些容器都含有max_size()这个函数,想请教一下,关于这个max_size()函数的值。在我机子上vector的max_size()=1073741823,list的max_size()=357913941,而string的max_size()=4294967294。。。请问这些值是固定的吗?? 为什么要设为这么大的值??是由电脑的配置决定的吗??? ***
谢谢。。。。****_
在STL中,像vector、list、string这些容器都含有max_size()这个函数,想请教一下,关于这个max_size()函数的值。在我机子上vector的max_size()=1073741823,list的max_size()=357913941,而string的max_size()=4294967294。。。请问这些值是固定的吗?? 为什么要设为这么大的值??是由电脑的配置决定的吗??? ***
谢谢。。。。****_
4294967294是2^32,也就是用一个int表示长度,能表示的最大值。
1073741823是上一个值的1/4,如果有什么原因它需要的存储是前者的4倍的话,那么最大值就是1/4。
这个应该是C++编译器/标准库规范/操作系统决定的, 不是电脑配置决定的。