作者flax00298 (NI)
看板C_and_CPP
标题[问题] string vs char*
时间Sun Jul 12 22:45:02 2009
对於传统的c-style string
到底为什麽还会留着呢?
我想都想不通
因为我不管怎麽想
没有一点是cpp-style string输给了c-style阿
就算是要用c-style来写程式
也可以用c++来写
这样的话
用c-style不就变得很冗长了吗
喔我觉得我好像在问一个很笨的问题
不过我真的不懂qq
希望知道的人可以解答一下
我自己的猜测是
淘汰是需要时间的?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.251.212
1F:→ zlw:使用简单、结构单纯。STL 的 String 对我来说,无法完全掌握 07/12 22:48
2F:→ zlw:那就好像你要做一件事,找了个人,能力强但你并不了解他的底细 07/12 22:48
3F:→ tiyun:string超慢 07/12 23:18
4F:推 legnaleurc:因为 C 目前还不会消失 07/12 23:32
5F:→ freesamael:c++相容c89,所以c89有的东西c++都有 07/12 23:33
6F:→ freesamael:而且如果你做 network programming 的话 07/12 23:33
7F:→ freesamael:会发现 character array 还满常需要用到... 07/12 23:34
8F:→ adxis:不相容等於前面写的东西全部翻掉阿... 07/13 00:15
9F:推 plover:不是每个地方都有c++ compiler.. 07/13 00:20
10F:→ flax00298:请问楼上,真的友这种情况吗?我不太能想像耶 07/13 00:30
11F:→ flax00298:不是都有很多免费的软体可以用吗?还是那些不够力? 07/13 00:30
12F:→ adxis:我猜楼上是讲一些embedded system? 07/13 00:49
13F:推 UNARYvvv:string 不会超慢啊,要作相同的事情 C 不会快到哪 07/13 03:02
14F:→ yoco315:怎麽可能拿掉,你要人家已经累积了几百万行的code都废掉吗. 07/13 05:15
15F:推 littleshan:string 怎麽个慢法?请来段 sample 吧 07/13 09:14
16F:推 avhacker:char* 有 string 不可取代之处,例如跨 module 时 07/13 09:15
17F:→ avhacker:但要说 string 慢?这又是一个以誐传誐了,试一下计算长度 07/13 09:16
18F:→ avhacker:而且进到 c++ 时代还不了解 string 的底细,很难让人觉得 07/13 09:16
19F:→ avhacker:是一个称职的 c++ programmer 07/13 09:16
20F:→ flax00298:回yoco:我说得淘汰需要时间其实意思差不多:) 07/13 09:32
21F:→ flax00298:回avhacker:就是用pointer去share data的观念罗? 07/13 09:33
22F:推 VictorTom:了解string怎麽用就够了, 未必真的要去了解它底层怎麽 07/13 10:30
23F:→ VictorTom:实作的吧??这不也是C++ OOP的精神之一吗@_@" 07/13 10:30
24F:→ VictorTom:虽然说就学习的角度来说, 能搞懂它自然更好Orz 07/13 10:31
25F:推 avhacker:flax:不同compiler实做 string 的方法不同,直接传会有问 07/13 10:56
26F:→ avhacker:题,但 char* 则无此问题. 跨平台就更不用说了 07/13 10:56
27F:→ nickexe:string 底层也是要靠 char* 存放资料, 07/14 01:06
28F:→ nickexe:直接想成 string 是对 char* 和一些方法的封装比较简单, 07/14 01:07
29F:→ nickexe:另外,把 char 当作是一个 8bit 记忆体空间 07/14 01:09
30F:推 nickexe:string并没有比char*慢喔,有实作 reference counting 07/14 01:12
31F:→ nickexe:在一些情况下,不但省记忆体空间又省拷贝的时间。 07/14 01:12
32F:推 wowtiger:C string 还是比较快 (至少这类assembly超多的) 07/14 07:57
33F:推 avhacker:快在哪? strlen(str) 吗? XD 07/15 12:12
34F:→ wowtiger:std::string 只有 strlen 优势 strcpy strcat strtok 07/16 00:38
35F:→ wowtiger:这类有暴力作法 比传统快 8 倍 (SSE4.2更是如此) 07/16 00:39
36F:推 avhacker:这种东西各家 compiler 厂商要实做进 STL 不算难事吧 07/17 19:07
37F:推 wowtiger:永远等不到实作的 因为有很多限制在 这是 char* 特化用 07/19 15:42