首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 的string最多能容纳多少个字符解决方法

2012-05-09 
C++ 的string最多能容纳多少个字符如题![解决办法]如果内存够,std::string容纳6百万个字符就没问题。std::s

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

[解决办法]
如果内存够,std::string容纳6百万个字符就没问题。
std::string库有一个成员函数max_size,可以用来获得最大字符长度。
下面这段代码在我的机器上输出4294967294,其实就是signed int的最大值。

C/C++ code
#include <string>#include <iostream>using namespace std;int main(){    string s;    cout << s.max_size() << endl;     return 0;}
[解决办法]
如果字符串长度达到G的级别,还要注意一下你的内存是否足够。
一般来说,32位程序每个进程(不论是32位系统还是64位系统)最多只能使用2G内存(据说开启3GB模式,可以最多使用3G内存),就是说,即使string最大可以达到4G的容量,但由于系统限制,你永远无法使用那么多。
[解决办法]
size_type __CLR_OR_THIS_CALL max_size() const
{// return maximum possible length of sequence
size_type _Num = _Mybase::_Alval.max_size();
return (_Num <= 1 ? 1 : _Num - 1);
}
max_size的实现是上面的,是最大值unsigned int-1;所以结果是4294967294,但可能string的长度比这个值还要大些
探讨
如果内存够,std::string容纳6百万个字符就没问题。
std::string库有一个成员函数max_size,可以用来获得最大字符长度。
下面这段代码在我的机器上输出4294967294,其实就是signed int的最大值。


C/C++ code


#include <string>
#include <iostream>

using namespace s……

热点排行