STL的關聯式容器總結

2021-09-21 13:29:17 字數 664 閱讀 7065

map是紅黑樹(一種非嚴格意義上的平衡二叉樹),置於紅黑樹的具體可以看演算法和資料結構,這裡不多說。

map的key型別必須要過載"<"操作符,無法過載時用自定義仿函式代替map的第三個引數,因為map是有序的。

map第乙個引數是key,第二個引數是value,第三個引數是compare函式,第四個引數是記憶體配置物件

insert(std::pair(1,『gg』))

判斷insert是否成功:

pairiterator, bool> insert_pair;

insert_pair = map.insert(std::pair(1,『gg』));

if ( insert_pair.second == true )

cout << 「success」 << endl;

else

cout << 「failed」 << endl;

map::iterator iter = m.begin();

for(; iter != m.end()?

}set類似於數學裡面的集合,不過set的集合中不包含重複的元素,這是和vector的第乙個區別,第二個區別是set內部用紅黑樹實現,便於元素查詢。在set中查詢是使用二分查詢法,所以set在查詢方面速度很快。在set中做插入和刪除效率也是比較高的,因為不需要做記憶體拷貝和記憶體移動。

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關聯式容器(二)

前面我們總結了map的用法,具體參考如下 stl關聯式容器 一 接下來我們看看multimap multimap是關聯式容器,它按照特定的順序,儲存由key和value對映成的鍵值對,其中多個鍵值對之間的key是可以重複的。multimap在底層用二叉搜尋樹 紅黑樹 來實現。multimap和map...

STL之關聯式容器

在接觸容器初,我們學習了stl中的部分容器,如 vector,list,deque 等,這些容器統一稱為序列式容器。因為其底層為線性序列的的資料結構,裡面儲存的是元素本身。關聯式容器就有所不同 關聯式容器也是用來儲存與序列式容器不同的是,裡面儲存的是結構的鍵值對,在資料檢索時比序列式容器效率更高。用...