C++ 中 string类 支持的字符串大小是多少?有上限吗?

 我来答
传薪网络
2015-11-13 · TA获得超过1355个赞
知道小有建树答主
回答量:635
采纳率:92%
帮助的人:238万
展开全部
  这个确实有上限,可以通过std::string::max_size()函数获得。
  该函数获取的上限,其实是unsigned(-1)的值。所以依据平台和编译选项的不同,这个值会有变化。

  在某些十六位嵌入式开发环境中,这个值是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支持的字符串大小没有上限,或者上限非常大几乎用不到。
高中数学知识课堂
2015-11-10 · 超过131用户采纳过TA的回答
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:175万
展开全部
有上限。上限是string类型最大的存放量,就像int类型的变量,你赋值了一个非常大的数据就会超限。
不过正常情况下的需求都能满足,可以用str.max_size()进行判定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2010-09-24 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5118万
展开全部
有上限. 可以用
size_t max_size ( ) const;
测定。
例如:
string str ("Test string");
cout << "max_size: " << str.max_size() << "\n";
数值很大,可以转为 double 存放。
double x;
x = (double) (str.max_size() );
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
583735151
2010-10-05 · TA获得超过449个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:227万
展开全部
有上限,可以用 string类的成员函数max_size测定,这个数很大,一般你不需要这么大的字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式