在接觸容器初,我們學習了stl中的部分容器,如:vector,list,deque…等,這些容器統一稱為序列式容器。因為其底層為線性序列的的資料結構,裡面儲存的是元素本身。關聯式容器就有所不同
關聯式容器也是用來儲存與序列式容器不同的是,裡面儲存的是結構的鍵值對,在資料檢索時比序列式容器效率更高。
用來表示具有一一對應關係的一種結構,該結構中一般只包含兩個成員變數key和value,key代表鍵值,value表示與key對應的資訊。比如:我們在乘坐高鐵或者飛機的時候,都需要用票來尋找自己的座位。我們的車票或者機票與座位是對應的關係。通過車票可以找到我們的位置。
pair
p(key,value)
;pair p1=
make_pair
(key,value)
;
#include
#include
using
namespace std;
void
test03()
intmain()
可以使用first或者second來分別訪問key或者value。
根據應用場景的不桶,stl總共實現了兩種不同結構的管理式容器:樹型結構與雜湊結構。樹型結構的關聯式容器主要有四種: map.、set、 multimap.、multiset。
這四種容器的共同點是:使用平衡搜尋樹(即紅黑樹)作為其底層結果,容器中的元素是乙個有序的序列。
STL之關聯式容器
sets 沒有重疊的數字,沒有權利指定新元素的位置 set typedef std set obj obj col col.insert 3 col.insert 1 col.insert 5 col.insert 4 col.insert 1 col.insert 6 col.insert 2 f...
STL之關聯式容器set map
1.管理元素集合的stl容器大致分為兩類,序列式容器 有順序的集合 和關聯式容器 經過排序的集合 2.關聯式容器再管理資料的過程中會自動給元素排序。其優點在於可以隨時採用二分搜尋法,搜尋元素的效率極高。1.set是根據元素值進行排序的集合,所插入的元素在集合中唯一,不存在重複元素。1.include...
STL之關聯容器
1.set單重集合 不允許key重複 set作為乙個容器,也是用來儲存同一資料型別的資料型別,並且能從乙個資料集合中取出資料 c stl中標準關聯容器set,multiset,map,multimap內部採用的就是一種非常高效的平衡檢索二叉樹 紅黑樹 include using namespace ...