作者septemhill (冰淇淋乾杯)
看板C_and_CPP
標題[問題] 管理指標陣列
時間Fri Apr 23 09:13:18 2010
如標題所述,想問一下指標陣列上管理的問題
在C上面,用char **去管理下一層的指標
C++上,則可以使用vector< char *>去管理
差別在於vector可以隨時push一個指標進去,而char **必須一開始就確定
不然之後就得在renew一次
先不考慮會不會忘記release vector< char * >指到的memory(假設都會記得)
那麼想請教的問題是,哪一個效能上會比較好?
就我個人直覺而言,會是C的寫法會比較快,畢竟我不知道vector做了哪些包裝
但是實際上並不清楚,所以想請教一下各位先進,謝謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.4.244
推 HudsonE:vector 可以跟 C 一樣快 04/23 09:42
→ septemhill:所以實際上效能會是差不多嗎 04/23 09:45
→ tinlans:這之前有實驗和討論過,基本上從頭到尾只差一行硬體指令, 04/23 10:57
→ tinlans:而且就算是寫成 loop 來存取,那指令也會出現在 loop 外。 04/23 10:57
→ tinlans:那行指令是透過 this 指標存取物件內容的 overhead。 04/23 10:58
→ tinlans:不過之前測的是 a[i] 在 vector 和一般陣列的比較就是了。 04/23 11:00