1.特性
map保證出如今map內的pair只出現一次,且map內的元素按照first從小到大排序,可是當first相同時,那麼按照輸入的順序排序
2.初始化
①初始化一個映射c++
map<int, int> m;
②複製一個映射code
map <int ,int > mm(m);
3.求長度(時間複雜度爲O(1))排序
m.size();
4.判空(時間複雜度爲O(1))it
a.empty();
5.清空class
a.clear();
6.刪除元素/插入元素遍歷
a.erase(1); // 刪除first爲1的那個值 ,時間複雜度爲O(logn ) a.erase(a.begin()); // 刪除map的第一個元素 a.insert({1, 2}); // 插入一個pair a[1] = 2; // 插入一個pair,時間複雜度爲O(logn)
7.判斷一個數是否出現過map
a.count(x); // 判斷x是否在集合中出現過,若是出現過返回1,不然0
8.迭代器迭代器
a.begin(); // 第一個元素的迭代器 a.end(); // 最後一個元素的下一位的迭代器
9.遍歷im
// 1.迭代器遍歷 for (map<int,int>::iterator it = m.begin(); it != m.end(); ++it) cout << (*it).second << ends; // 2. c++方式遍歷 for (auto mi: m) cout << mi.second << ends;
10.查找(支持lower_bound() 和 upper_bound()操做)集合
map<int, int> s; s[1] = 2; S[2] = 3; map <int> ::iterator it = m.lower_bound(2); if (it != m.end()) cout << *it; else cout << 0;
11.multimap的性質和map同樣,上面全是map的特性,而multimap在map的特性之上使得一個集合內能夠出現屢次同一個元素,multimap內的元素也是按照字典序排好序的
multimap<int, int> m; m.insert({1, 2}); m.insert({1, 3}); for (auto mi: m) cout << mi.second << ends;
輸出
2 3
在s.erase(int x)時,會刪除全部出現的x,時間複雜度爲O(logn + k) (k爲出現次數)
multimap<int, int> m; m.insert({1, 4}); m.insert({1, 3}); m.insert({1, 5}); m.erase(1); cout << m.empty();
輸出
1