Re: [問題] 不傾向使用std::vector的原因
※ 引述《QHsin (Q馨)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Linux VC++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: C++ Standard Library(C++標準程式庫)
: C++ Standard Template Library (STL)
: 問題(Question):
: 這應該算是剛入行沒多久的菜鳥問題。
: 主要是工作到現在,常常看到一些class寧可自行管理動態陣列,
: 而不喜歡直接使用vector,其中的原因自己研究不太出來,
: 所以想問問是不是有一些業界的相關經驗,導致有什麼不適合使用vector的狀況發生。
之前的工作有遇過一個不用vector會比較好的情況
這個情況就是:
一、我們在run time才知道有多少元素
二、我們需要節省記憶體
三、這個container中的元素數決定後就固定不變,所以不用push_back...等的
我們在amd64的環境中。vector它為了動態增減元素,內部有三個指
標,分別指出開頭、現在元素量、容量結尾,這會佔用24bytes
而我們只需要開頭和元素量,一個pointer和一個int,只用了12bytes
這樣的container我們會create 10^9個以上,一來一往就差了好幾GB了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.55.97
※ 編輯: Arton0306 來自: 114.42.55.97 (11/04 22:26)
→
11/04 22:38, , 1F
11/04 22:38, 1F
→
11/04 22:57, , 2F
11/04 22:57, 2F
→
11/04 22:58, , 3F
11/04 22:58, 3F
推
11/04 23:22, , 4F
11/04 23:22, 4F
推
11/05 01:11, , 5F
11/05 01:11, 5F
→
11/05 01:11, , 6F
11/05 01:11, 6F
→
11/05 01:12, , 7F
11/05 01:12, 7F
→
11/05 01:13, , 8F
11/05 01:13, 8F
→
11/05 01:13, , 9F
11/05 01:13, 9F
→
11/05 07:17, , 10F
11/05 07:17, 10F
→
11/05 07:20, , 11F
11/05 07:20, 11F
→
11/05 07:21, , 12F
11/05 07:21, 12F
※ 編輯: Arton0306 來自: 114.42.55.97 (11/05 07:25)
※ 編輯: Arton0306 來自: 114.42.55.97 (11/05 07:26)
推
11/05 11:22, , 13F
11/05 11:22, 13F
→
11/05 11:22, , 14F
11/05 11:22, 14F
→
11/05 11:42, , 15F
11/05 11:42, 15F
推
11/05 12:51, , 16F
11/05 12:51, 16F
→
11/05 12:52, , 17F
11/05 12:52, 17F
→
11/05 12:52, , 18F
11/05 12:52, 18F
→
11/10 13:03, , 19F
11/10 13:03, 19F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):