[問題] 管理指標陣列

看板C_and_CPP (C/C++)作者 (冰淇淋乾杯)時間16年前 (2010/04/23 09:13), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
如標題所述,想問一下指標陣列上管理的問題 在C上面,用char **去管理下一層的指標 C++上,則可以使用vector< char *>去管理 差別在於vector可以隨時push一個指標進去,而char **必須一開始就確定 不然之後就得在renew一次 先不考慮會不會忘記release vector< char * >指到的memory(假設都會記得) 那麼想請教的問題是,哪一個效能上會比較好? 就我個人直覺而言,會是C的寫法會比較快,畢竟我不知道vector做了哪些包裝 但是實際上並不清楚,所以想請教一下各位先進,謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.4.244

04/23 09:42, , 1F
vector 可以跟 C 一樣快
04/23 09:42, 1F

04/23 09:45, , 2F
所以實際上效能會是差不多嗎
04/23 09:45, 2F

04/23 10:57, , 3F
這之前有實驗和討論過,基本上從頭到尾只差一行硬體指令,
04/23 10:57, 3F

04/23 10:57, , 4F
而且就算是寫成 loop 來存取,那指令也會出現在 loop 外。
04/23 10:57, 4F

04/23 10:58, , 5F
那行指令是透過 this 指標存取物件內容的 overhead。
04/23 10:58, 5F

04/23 11:00, , 6F
不過之前測的是 a[i] 在 vector 和一般陣列的比較就是了。
04/23 11:00, 6F
文章代碼(AID): #1BqFGnxJ (C_and_CPP)
文章代碼(AID): #1BqFGnxJ (C_and_CPP)