1. 概述
map是C++中的一種鍵值對容器,要點就是數據在map中是成對出現的,能夠通過鍵也就是key來快速找到對應的值。要想使用標准C++中map類,必須要包含頭文件:
#include <map>
2. 聲明
map<int, string> my_map; //聲明一個map; map的鍵值對類型可以是基礎數據類型,也可以是結構體或類
3. map迭代器
和vector一樣,map也存在迭代器,方便對map進行遍歷操作,map中也存在begin,end,rbegin,rend,前兩者為順序的頭尾迭代器,后兩者為逆序的頭尾迭代器。
map<int, string>::iterator iter = my_map.begin();
4. 插入數據
map中常用的插入數據方式有兩種,一種是通過下標插入,一種是通過insert函數插入
my_map[key] = value; pair<map<int, string>::iterator, bool> Insert_Pair = my_map.insert(pair<int, string>(1, "one"));
insert函數中的參數除了可以是pair數據以外,還可以是
map<int, string>::value_type(1, "one")
5. 判斷key是否存在
對於map來說判斷key是否存在是一個非常重要的操作
int num = my_map.count(key); //返回值是0或1,表示map中某個key出現的次數 //返回值是一個迭代器,如果找到了就是對應的鍵值對,如果沒找到就是my_map.end()對應的迭代器 map<int, string>::iterator iter = my_map.find(key);
6. 刪除數據
map中刪除數據主要有三種方式,通過迭代器刪除某個鍵值對,通過迭代器刪除某些鍵值對和通過key刪除鍵值對
my_map.erase(iter);
my_map.erase(begin_iter, end_iter);
my_map.erase(key);
7. 其他常用函數
my_map.size(); //返回map中的鍵值對個數 my_map.clear(); //清除map中所有鍵值對 my_map.empty(); //返回map是否為空,返回值為bool