C++標準庫 - STL容器概述

容器分類:

容器總體上可分爲3種:序列式容器、關聯式容器、無序容器。

1、序列式容器 sequence containers:

Array,C++11,就是對數組的包裝,大小固定;

                                             

Vector,內存不夠可以在後邊自動增長;

                                                        

Deque,雙向隊列,兩端可進可出,雙向都可動態擴容,queue和stack都是Deque的適配器,技術上都是Deque,不提供Iterator。queue允許在一端插入,另一端刪除,stack允許在一端插入和刪除。

                                          

List:雙向鏈表;

                             

Forward-List(C++11),單向鏈表

                             

2、關聯式容器 associative containers:

採用key-value結構,有序,適合用於快速查找。

       set/multiset,底層紅黑樹做的,set的key和vaule是一個,multi表示元素可以重複:

                                                  

       map/multimap,底層紅黑樹做的,map的每個節點有key和vaule,multi表示key可以重複

                                               

3、無序容器 unordered containers:

C++11新出的容器,使用HashTable做的,HashTable是數組+鏈表的組合

       Unordered set/multiet:

                                                             

       Unordered map/multimap

                                                             

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章