作者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