C++ 的string最多能容纳多少个字符
如题!
[解决办法]
如果内存够,std::string容纳6百万个字符就没问题。
std::string库有一个成员函数max_size,可以用来获得最大字符长度。
下面这段代码在我的机器上输出4294967294,其实就是signed int的最大值。
#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的长度比这个值还要大些