精華區beta C_and_CPP 關於我們 聯絡資訊
※ 引述《StubbornLin (Victor)》之銘言: : 標題: [問題] STL空容器的成本 : 時間: Mon Jul 17 22:57:37 2006 : : 我想請問一下,關於STL : 如果容器什麼都沒裝,成本是哪些? : : 原因是這樣的,我會有大量的物件,而物件裡面,我打算每個都放一個容器 : 然後真正會用到容器的物件其實不多,所以我想知道一下 : 如果當容器是空的時後,需要付出多少成本? 這要看是哪一種容器 以及你用的 library 的實作方式 以 gcc-4.0 的 vector 來說 vector<_Tp, _Alloc> 繼承自 _Vector_base<_Tp, _Alloc> 而 _Vector_base 有一個成員 其型別為 _Vector_impl _Vector_impl 繼承自 _Alloc 並增加三個型別為 _Tp* 的成員 而 _Alloc 預設為 allocator<_Tp> 且沒有成員變數 所以算一算 vector<T> 在空容器狀態 占用的空間是三個指標 (不考慮 specialization 的情況下) [deleted] : → eugenehsu:一般都是直接放指標阿 龜毛 07/18 00:00 : 推 yoco315:可能的話我都是盡量不想放指標,越多指標越多機會出錯 07/18 00:38 可以用 auto_ptr 指向容器 不過用指標使用上有時候不太方便 像是本來用 my_objects[i] 就要改成 (*my_objects)[i] 滿難看的... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.3.35