C++中String 的长度大小有限制吗?

pipifan 2003-08-04 09:44:26
如题,谢谢!
...全文
4218 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hansen1998 2003-08-07
  • 打赏
  • 举报
回复
当你定义一个string对象时并初始化它时,C++编译器会为它分配一个定量的空间,随着string对象中数据的增加,当这个一定量的空间不够时,编译器会为它再增加一倍的空间。这是一种动态的内存分配,因此一般string是没有长度限制的。当然,除非你的内存耗尽,那就另当别论了。
merlinran 2003-08-07
  • 打赏
  • 举报
回复
string本身提供了一个成员函数叫max_size,返回的是它所允许的最大序列的长度。
标准库的容器都提供了这么一个成员。

fangrk(加把油,伙计!):
你的做法是不正确的,即使偶然正确,也只是碰运气而已。你取的是其size_type所能表达的最大值。
chon81 2003-08-07
  • 打赏
  • 举报
回复
我想在保护模式下,可能没什么
在实模式下,可能不能超出段.
villager 2003-08-07
  • 打赏
  • 举报
回复
using namespace std;


使用标准名字空间

C++标准库那么大,免不了有时候里面的函数名或变量名跟你写的程序里的重名,名字起的一样那还不出乱子?所以标准库里的数据都定义在标准名字空间里面,跟你的程序里的变量名隔离开来。就是这个样子
Jinbj 2003-08-07
  • 打赏
  • 举报
回复
using namespace std;
我想知道这句话到底什么意思
wangshewei 2003-08-05
  • 打赏
  • 举报
回复
不好意思,好像漏写了:using namespace std;
wangshewei 2003-08-05
  • 打赏
  • 举报
回复
为什么不编写一个程序试一试?
#include <iostream>
#inclued <string>
int main()
{
string str="a";
try
{
for (int i=1;i<1000;i++)
{
str=str+"a";
cout<<str<<endl;
}
}
catch(...)
{
cout<<"come to the end!"<<endl;
}
return(0);
}
备注:因为手头没有C++编译器,所以以上程序没有经过调试。但是我想基本编程思路应该如此。
snowman_pc 2003-08-05
  • 打赏
  • 举报
回复
我记得在一本书上看过,
C++本身没有规定字符串的长度,

zgzjw 2003-08-05
  • 打赏
  • 举报
回复
要看虚拟内存有多大了
yjh1982 2003-08-04
  • 打赏
  • 举报
回复
有!看你的内存多大了
fangrk 2003-08-04
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <limits>
using namespace std;
int main()
{
cout<<numeric_limits<string::size_type>::max()<<endl;
}

C:\temp>bcc32 -WR -WC a
Borland C++ 5.6.4 for Win32 Copyright (c) 1993, 2002 Borland
a.cpp:
Turbo Incremental Link 5.64 Copyright (c) 1997-2002 Borland

C:\temp>a
4294967295

C:\temp>

24,861

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧