→ XDucka:我好像有點瞭了= = 再開新變數的話會浪費空間減低效能Orz 10/07 18:45
推 ss355227:是嗎? 我也好奇 10/07 18:52
推 shps90060505:我的理解是先將s copy給_str,然後再convert _str 10/07 18:57
→ shps90060505:希望有強者可以確切的解答.... 10/07 18:58
→ XDucka:就跟樓上說的一樣 如果你先開一個變數存s 再改s再存到_str 10/07 19:05
→ XDucka:不如直接存給_str 改_str 10/07 19:05
→ XDucka: ↑再改變數 10/07 19:06
→ yuting1105:不過在這個例子裡 應該可以對s直接用xMap再存給_str吧 10/07 19:15
→ XDucka:不行吧 他是const &s 10/07 19:28
→ yuting1105:xMap裡預設的prototrype是(char c) 在這邊有copy才改 10/07 20:13
→ yuting1105:不過我剛剛想刪掉:_str(s)來印証時才發現 保留的話_str 10/07 20:15
→ yuting1105:的size才會跟本來s一樣 然後我的implement這樣較方便XD 10/07 20:15
推 ric2k1:大家討論得應該是蠻清楚了的吧!! 10/07 23:47
→ ric2k1:沒錯!! 為了避免多 copy 一份 string, 所以傳入的是 10/07 23:47
→ ric2k1:string&, 但又要避免改到外面傳進來的 string, 所以加上 10/07 23:48
→ ric2k1:const. 而如果在 constructor 裡面先把外面傳進來的 string 10/07 23:49
→ ric2k1:copy, 改好之後再存到 _str, 其實是多此一舉。所以直接 10/07 23:49
→ ric2k1:在 constructor 的 initialization list 上把 s copy 給 10/07 23:50
→ ric2k1:_str 是最有效率的! 10/07 23:50