1、map介紹
????????map是C++ STL的一個關聯容器,它提供一對一的數據處理能力。其中,各個鍵值對的鍵和值可以是任意數據類型,包括 C++ 基本數據類型(int、double 等)、使用結構體或類自定義的類型。
????????第一個可以稱為關鍵字(key);
????????第二個可能稱為該關鍵字的值(value);
????????使用 map 容器存儲的各個鍵值對,鍵的值既不能重復也不能被修改。換句話說,map 容器中存儲的各個鍵值對不僅鍵的值獨一無二,鍵的類型也會用 const 修飾,這意味著只要鍵值對被存儲到 map 容器中,其鍵的值將不能再做任何修改。
2、map庫函數
2.1、構造函數
(1)map<key_DataType, value_DataType> map_vec;
//聲明一個map類型的變量舉例如下:
map<int, int> map1;
map<int, string> map2;
map<string, int> map3;
map<vector<int>, vector<vector<int>>> map4;
map<vector<int, int> map5
2.2、屬性操作
(1)empty() ? ? ? ? ? ? ?// 如果map為空,則返回true
(2)size() ? ? ? ? ? ? ? ? // 返回map中的元素數
(3)max?size() ? ? ? ? // 返回map的最大容量
2.3、元素訪問
(1)operator[] ? ? ? ? ? ? ? ? ? // 用給定的鍵檢索元素
(2)at ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 用給定的鍵檢索元素
2.4、增刪改查
insert()? ? ? ? ? ? ? ? ? ? //在map中插入元素
erase() ? ? ? ? ? ? ? ? ? ?//從map上擦除元素
swap() ? ? ? ? ? ? ? ? ? ? //交換map內容
clear() ? ? ? ? ? ? ? ? ? ? ?//刪除map的所有元素
emplace() ? ? ? ? ? ? ? //構造新元素并將其插入map
emplace_hint() ? ? ? //通過提示構造新元素并將其插入map
key?_comp() ? ? ? ? ? ? //返回鍵比較對象的副本
value?comp() ? ? ? ? ? ?//返回值比較對象的副本
find() ? ? ? ? ? ? ? ? ? ? ? ? ?//搜索具有給定鍵的元素
count() ? ? ? ? ? ? ? ? ? ? ? //獲取與給定鍵匹配的元素數
lower_bound() ? ? ? ? ? //返回迭代器的下限
upper_bound() ? ? ? ? // 返回一個迭代器到上限
equal_range() ? ? ? ? ? //返回與給定鍵匹配的元素范圍
2.5、迭代器
(1)begin() ? ? ? ? ? ? ? ?//返回指向map中第一個元素的迭代器
(2)cbegin() ? ? ? ? ? ? ?//返回指向map中第一個元素的consti迭代器
(3)end() ? ? ? ? ? ? ? ? ?// 返回指向末尾的迭代器
(4)cend() ? ? ? ? ? ? ? ? //返回指向末尾的常量迭代器
(5)rbegin() ? ? ? ? ? ? ?//返回指向末尾的反向迭代器
(6)rend() ? ? ? ? ? ? ? ? ?//返回指向起點的反向迭代器
(7)crbegin() ? ? ? ? ? ? //返回指向末尾的常量反向迭代器
(8)crend() ? ? ? ? ? ? ? ?//返回指向起點的常量反向迭代器