使用map/multimap之前要加入頭檔案#include<map>,map和multimap将key/value當作元素,進行管理。它們可根據key的排序準則自動将元素排序。multimap允許重複元素,map不允許重複元素。

map和multimap内部的資料結構也是平衡二叉樹。

map和multimap根據元素的key自動對元素進行排序,要修改元素的key必須先删除擁有該key的元素,然後插入擁有新的key/value的元素。
map m:建立空映射,不包含任何元素
map m(op):以op為排序準則,産生一個空的map
map m1(m2):複制c2中的元素到c1中
map m(const value_type *first, const value_type* last):複制[first, last)之間元素構成新映射
map m(const value_type *first, const value_type* last,op):以op為排序準則,複制[first, last)之間元素構成新映射。
m.~set()銷毀所有元素,釋放記憶體
multimap mm:建立空映射,不包含任何元素
multimap mm(op):以op為排序準則,産生一個空的multimap
multimap m1(m2):複制m2中的元素到m1中
multimap m(const value_type *first, const value_type* last):複制[first, last)之間元素構成新映射
multimap m(const value_type *first, const value_type* last,op):以op為排序準則,複制[first, last)之間元素構成新映射
m.~multimap()銷毀所有元素,釋放記憶體
int size() const:傳回容器元素個數
bool empty() const:判斷容器是否空,若傳回true,表明容器已空。
3.增加删除函數
iterator insert(const value_type& x):插入元素x
iterator insert(iterator it,const value_type& x):在疊代指針it處插入元素x
void insert(const value_type *first,const value_type* last):插入[first,
last)之間元素
iterator erase(iterator it):删除疊代指針it處元素
iterator erase(iterator first,iterator last):删除[first,
size_type erase(const key& key):删除鍵值等于key的元素
上述代碼運作結果為
上述代碼運作結果為:
如果想往map/multimap中修改一個映射的值,應先插入一個新映射,再把與修改的映射删除。
iterator begin():傳回首元素的疊代器指針
iterator end():傳回尾元素的疊代器指針
reverse_iterator rbegin():傳回尾元素的逆向疊代器指針
reverse_iterator rend():傳回首元素前一個位置的疊代器指針
reference operator[](const key& k):僅在但映射map類中,可以以數組的形式給映射添加鍵-值對,并可傳回值的引用。