c++ stl 的實現:
1.vector 底層資料結構為陣列 ,支援快速隨機訪問
2.list 底層資料結構為雙向鍊錶,支援快速增刪
3.deque 底層資料結構為乙個**控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾(中間不能)快速增刪,也支援隨機訪問
4.stack 底層一般用23實現,封閉頭部即可,不用vector的原因應該是容量大小有限制,擴容耗時
5.queue 底層一般用23實現,封閉頭部即可,不用vector的原因應該是容量大小有限制,擴容耗時
6.45是介面卡,而不叫容器,因為是對容器的再封裝
7.priority_queue 的底層資料結構一般為vector為底層容器,堆heap為處理規則來管理底層容器實現
8.set 底層資料結構為紅黑樹,有序,不重複
9.multiset 底層資料結構為紅黑樹,有序,可重複
10.map 底層資料結構為紅黑樹,有序,不重複
11.multimap 底層資料結構為紅黑樹,有序,可重複
12.hash_set 底層資料結構為hash表,無序,不重複
13.hash_multiset 底層資料結構為hash表,無序,可重複
14.hash_map 底層資料結構為hash表,無序,不重複
15.hash_multimap 底層資料結構為hash表,無序,可重複
STL各種容器的區別
容器名名稱 資料結構 效能備註 string 通用字串庫 連續存放的記憶體塊 有保留記憶體 堆中分配記憶體 高效率的隨機訪問 o 1 的訪問時間 在最後增加元素時,一般不需要分配記憶體空間,速度快 在中間或開始操作元素時要進行記憶體拷貝效率低 支援操作 vector 通用向量 陣列 庫 變長一維陣列...
STL中各種容器效率
2.deque 動態陣列 deque支援隨機訪問。在deque的首端和末端插入和刪除元素比較快,在中部插入和刪除則比較慢。deque的記憶體重分配效能比vector好。3.list 雙向鍊錶 list不支援隨機訪問。list在任何位置安插和刪除元素速度都比較快 雙向鍊錶 list的安插和刪除操作不會...
STL各種容器如何正確的erase
分類 c 基礎 2014 05 14 10 52 41人閱讀收藏 舉報stl erase vector刪除 c stl中 結點類容器 如 list,hash map 遍歷時進行刪除 時,需要這樣做 for list iterator iter m list.begin iter m list.end...