最近,在网上看到有人说,在编程的时候因为传入的字符串太长害怕把string类的对象“撑爆”。其实完全不用考虑这点。
跟大家分享一下不用担心的原因:
可以用string的成员函数max_size()检测出最大容纳量。我的实验结果是max_size=4294967294。其实根据int 64,2^32来计算,结果为4294967296。实验中它本身还占用了空间。
需要解释的是,定义了一个string的对象,系统并非一开始就会分配这门大的空间出来。根据我的实验结果表明,系统分配的初值是15。当不够用时,每次会+16.
总之,string的极限值是4294967296,即使你把一本几十万字的中文著作输入进去,也还远远达不到极限值。所以,妈妈再也不用担心它会被我撑爆了。