社区
C++ 语言
帖子详情
请教string的效率
wcwyf001
2008-06-28 01:00:00
请问C++里面string的效率高还是c中用字符串数组的效率高?
谢谢。
...全文
163
18
打赏
收藏
请教string的效率
请问C++里面string的效率高还是c中用字符串数组的效率高? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
五号智能
2008-06-29
打赏
举报
回复
[Quote=引用 17 楼 wcwyf001 的回复:]
谢谢大家,如果我要处理大约有几兆长度的字符串呢?
[/Quote]
问题已经很明朗了,选择在于你的操作。
如果你只对字符进行cout,简单的操作,当然是字符数组快。
但如果你对你的数据进行比较复杂的操作,查找,复制,比较,连接,那最好是string.string很多功能都可以简化你的代码,安全实用性能还高。
wcwyf001
2008-06-29
打赏
举报
回复
谢谢大家,如果我要处理大约有几兆长度的字符串呢?
fish6344
2008-06-28
打赏
举报
回复
这个问题没有争论的意义,Bjarne Stroustrup对此有专门的文章讨论过,还可以参考《C++标准程序库》!结论就是我在12楼说的!
fhb13
2008-06-28
打赏
举报
回复
当然是C的数组效率高,但是string用起来方便。
feige2008
2008-06-28
打赏
举报
回复
我喜欢string,用起来很方便,而且基本上没出现过问题。
fish6344
2008-06-28
打赏
举报
回复
不好意思,少打两字,特更正:
这也正是C++标准委员会和STL实作者不对C风格字符数组作某种优化(放弃C风格字符数组)而仅推荐使用string的原因!
fish6344
2008-06-28
打赏
举报
回复
究竟是C风格的字符数组效率高还是STL的string效率高?
当你在程序中只需简单的使用一个定长的字符串,例如:
void show(void)
{
char chs[] = "Good!";
cout << chs << end;//仅用于提示性的屏幕输出;
}
上述对字符串的应用需求,在程序中较为普遍。显然上述情况中,chs数组无需堆内存的申请与释放、对象建构与析构以及那些成员函数的调用开销,因此效率明显高于string!
但是在稍为复杂一些的应用需求下,例如chs可能需要动态的变换长度;或是可能对字符串经常作一些变易性与非变易性操作以及可能作为参数传递给下层的子程序作上述操作等等,则无论是代码的增加以及执行效率(当然还有重要的安全性),使用string无疑在编程效率和执行效率都明显优于C风格的字符数组。这也正是C++标准委员会和STL实作者不对C风格数组作某种优化(放弃C风格字符数组)而仅推荐使用string的原因!
fflush
2008-06-28
打赏
举报
回复
效率高低取决于你使用的方式,而不是你使用什么
simo110
2008-06-28
打赏
举报
回复
是啊
都用C++就基本都用string了
blackmurder
2008-06-28
打赏
举报
回复
在乎效率在乎到那种程度的话,C也别用了,直接上汇编算了
K行天下
2008-06-28
打赏
举报
回复
效率是 C-字符串数组高
但是经常会有越界之类的风险
string还是比较安全智能的
wjb_yd
2008-06-28
打赏
举报
回复
[Quote=引用 3 楼 jieao111 的回复:]
安全第一。效率不应该是首要考虑的
[/Quote]
iambic
2008-06-28
打赏
举报
回复
在乎效率的话也不要用C++了。
珍惜生命远离CPP
2008-06-28
打赏
举报
回复
在乎效率的话,别用string
Michael_555
2008-06-28
打赏
举报
回复
c的字符串数组的效率要高
jieao111
2008-06-28
打赏
举报
回复
安全第一。效率不应该是首要考虑的
baihacker
2008-06-28
打赏
举报
回复
直接操作字符数组,不方便,但是由于是直接访问,所以访问速度快,但是可能不安全.
但是strin用起来方便,也安全.
sinosinux
2008-06-28
打赏
举报
回复
string更安全更方便
Java中的
String
主要讲解
String
类型的不可变性,里面的方法,==等
请教
字符串匹配的高效算法
转自 http://topic.csdn.net/u/20100123/18/14bc3508-69d9-481a-b973-819935be0c3c.html老紫竹写的 经典就收藏了
String
a = "abcd,efg";
String
b = ")(*&^%$#@![]{},.//;:'?<>";
要求是判断
String
a 里有没有哪个字符在
String
b里出现,
效率
越高越好。我自己技术菜,只能实现,
效率
极差,不好意思贴出来。还盼各位高手能贴出代码或给出思路,十分感谢!!<
[原]深入 JAVA里面关于byte数组和
String
之间的转换问题
把byte转化成
string
,必须经过编码。 例如下面一个例子: importjava.io.UnsupportedEncodingException; publicclass test{ publicstatic void main(
String
g[]) {
String
s = "12345abcd"; byteb[] = s.getBytes(...
Java中
String
对象创建机制详解(面试必问)
Java
String
面试相关问题详解,四种
String
对象创建机制,
String
本质,
String
与
String
Buffer异同,常量池,Java内存模型;
快速秒懂STL中
string
的用法
STL中的
string
类
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章