为什么std:: string对象的最大大小是4611686018427387897?



我有一个代码,我输出一个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在您使用的标准库中是如何实现的。不同的实现可能"使用";从字符串的大小中移出一个位用于其他用途(例如,标记"这是一个短字符串")。

相关内容

  • 没有找到相关文章