1.vector
底層資料結構為陣列 ,支援快速隨機訪問
2.list
底層資料結構為雙向鍊錶,支援快速增刪
3.deque
底層資料結構為乙個**控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾(中間不能)快速增刪,也支援隨機訪問
deque是乙個雙端佇列(double-ended queue),也是在堆中儲存內容的.它的儲存形式如下:[堆1] -->
[堆2] -->
[堆3] --> ...
每個堆儲存好幾個元素,然後堆和堆之間有指標指向,看起來像是list和vector的結合品.
4.stack
底層一般用list或deque實現,封閉頭部即可,不用vector的原因應該是容量大小有限制,擴容耗時
5.queue
底層一般用list或deque實現,封閉頭部即可,不用vector的原因應該是容量大小有限制,擴容耗時
(stack和queue其實是介面卡,而不叫容器,因為是對容器的再封裝)
6.priority_queue
的底層資料結構一般為vector為底層容器,堆heap為處理規則來管理底層容器實現
7.set
底層資料結構為紅黑樹,有序,不重複
8.multiset
底層資料結構為紅黑樹,有序,可重複
9.map
底層資料結構為紅黑樹,有序,不重複
10.multimap
底層資料結構為紅黑樹,有序,可重複
11.hash_set
底層資料結構為hash表,無序,不重複
12.hash_multiset 底層資料結構為hash表,無序,可重複
13.hash_map 底層資料結構為hash表,無序,不重複
14.hash_multimap 底層資料結構為hash表,無序,可重複
資料結構 STL
棧 先入後出 filo 的一種資料結構。常見操作 模擬火車調頭,進製轉換,表示式求值,單調棧 陣列形式 理解 const int num 1e6 10 定義棧的大小,可自由改變 int stac num 乙個整型棧 int top 棧頂指標 int main top 1 設定棧頂指標為 1 stac...
資料結構 stl
uva 11997 題意 給你乙個數k,並且給你k組數,每組k個數,現在在每組中任取乙個數,然後相加可以得到乙個和,這樣的和共有k k個,要求輸出所有可能的和值中最小的k個。思路 問題1 如果只有a,b,c三個大小為k的陣列,我們如何求 和 能獲得最小的前k個和呢?我們只需要將a和b陣列求出前k小的...
資料結構 stl
1022 心中mmp,很簡單的一道題目,做了兩個小時,改錯乙個半小時,最後錯出在了while的判斷條件上,有什麼區別麼。題意 給出該數字序列的進棧順序,並給出要求的出棧順序,要你判斷是否能按照這個順序出棧。思路 我們只要用兩個指標i和j,指向當前需要處理的入棧和出棧的那個字元即可。先看如果我們把棧s...