1. Map 基本

Map与Set的底层都是通过平衡的二分查找树实现的 O(logn)
unorder_map 和 unorder_set 底层是用 哈希表实现的 O(1)

  1. map<int,int> test;
  2. // 此时map.find(42) == map.end();

一当访问了 map,则map会有默认值 0 ,即:

  1. test[42] // return 0
  2. // 此时 42 的默认值是 0 , map.find(42) != map.end();

元素为0 也在map中,只有使用erase才能删除

  1. test[42] ++;
  2. test[42] --;
  3. // map.find(42) != map.end();
  4. test.erase(42);
  5. // 此时map.find(42) == map.end();

2. Map iterator

  1. map<string,vector<int>> myMap;
  2. map<int, string>::iterator iter;
  3. iter = myMap.begin();
  4. iter->first ...
  5. iter->second ...