C++ 的string最多能容纳多少个字符

如题所述

有上限,可以通过std::string::max_size()函数获得

在某些十六位嵌入式开发环境中,这个值是65535,也就是十六进制的0xFFFF
大部分32位环境或者系统中,这个值是4,294,967,295,也就是十六进制0xFFFFFFFF。这大约有4G字节的样子。
极少数服务器里面64位环境下,这个值是18,446,744,073,709,551,615,也就是十六进制的0xFFFFFFFFFFFFFFFF。这大约是16E字节的样子(1E=1G个G,也就是2的30次方个G)。因为这种服务器其实是一个类似于天河计算机一样的网络集群,内存容量非常大(以T计算,1T=1024G),硬盘容量近乎无限。
不过实际上使用的时候,这个大小是受限于计算机内存容量的。但对于内存可以承受的范围内,可以简单的认为string支持的字符串大小没有上限,或者上限非常大几乎用不到。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-24

调用max_size()试试看

这么多个,我电脑上的

第2个回答  推荐于2017-11-22

每个环境都不一样的,下面代码可查询当现前环境的最大值:

#include <string>
#include <iostream>
 
using namespace std;
 
int main()
{
    string s;
    cout << s.max_size() << endl; 
 
    return 0;
}

本回答被提问者采纳
第3个回答  2016-09-24
不限制长度的字符串,以“\0” 作为结尾符。长度可达 4G !
相似回答