我有一个代码,我输出一个std::string
对象的最大长度:
string s;
cout<<s.max_size()<<endl;
cout << INT_MAX << endl;
cout<<LLONG_MAX<<endl;
输出:
4611686018427387897
2147483647
9223372036854775807
如果不困难,请解释为什么std::string
的最大尺寸是4611686018427387897。这大约是LLONG_MAX
的一半。
这取决于basic_string
在您使用的标准库中是如何实现的。不同的实现可能"使用";从字符串的大小中移出一个位用于其他用途(例如,标记"这是一个短字符串")。