map/ multimap容器
1.1 map基本概念
簡介:
- map中所有元素都是pair
- pair中第一個元素為key(鍵值),起到索引作用,第二個元素為value(實值)
- 所有元素都會根據元素的鍵值自動排序
本質:
- map/multimap屬於關聯式容器,底層結構是用二叉樹實現。
優點:
- 可以根據key值快速找到value值
map和multimap區別:
- map不允許容器中有重複key值元素
- multimap允許容器中有重複key值元素
1.2 map構造和賦值
功能描述:
- 對map容器進行構造和賦值操作
函式原型:
構造:
map<T1, T2> mp;
//map預設建構函式:map(const map &mp);
//複製建構函式
賦值:
map& operator=(const map &mp);
//過載等號運算子
總結:
map中所有元素都是成對出現,插入資料時候要使用對組
1.3 map大小和交換
功能描述:
- 統計map容器大小以及交換map容器
函式原型:
size();
//返回容器中元素的數目/大小empty();
//判斷容器是否為空swap(st);
//交換兩個集合容器
總結:
- 統計大小 --- size
- 判斷是否為空 --- empty
- 交換容器 --- swap
1.4 map插入和刪除
功能描述:
- map容器進行插入資料和刪除資料
函式原型:
insert(elem);
//在容器中插入元素。clear();
//清除所有元素erase(pos);
//刪除pos迭代器所指的元素,返回下一個元素的迭代器。erase(beg, end);
//刪除區間 [beg,end) 的所有元素(區間是前閉後開) ,返回下一個元素的迭代器。erase(key);
//刪除容器中值為key的元素。
總結:
- map插入方式很多,記住其一即可
- 插入 --- insert
- 刪除 --- erase
- 清空 --- clear
1.5 map查詢和統計
功能描述:
- 對map容器進行查詢資料以及統計資料
函式原型:
find(key);
//查詢key是否存在,若存在,返回該鍵的元素的迭代器(位置);若不存在,返回set.end();count(key);
//統計key的元素個數
總結:
- 查詢 --- find (返回的是迭代器)
- 統計 --- count (對於map,結果為0或者1,因為map不允許有相同的key值存在,而multimap允許)