map 和 unordered_map 都是键值对的容器。map 的底层通过树实现,且会自动为容器内元素按key进行升序排序。unordered_map 的底层通过哈希表实现,并不会自动排序。当创建一个不需要排序的字典时应使用 unordered_map,因为哈希表对元素的查找更快。
结论:需要排序的字典用 map,不需要排序的字典用unordered_map。
2. map 的用法#include3. unordered_map 的用法
#include//map头文件 int x; string s; unordered_map m; //初始化一个名为m的unordered_map map[s] = x; //在map中添加键值对 s-x unordered_map.erase(i); //删除map中迭代器为i的键值对(可配合find方法使用) unordered_map.erase(s); //删除map中键为s的键值对,返回删除个数 unordered_map.clear(); //清空map unordered_map.empty(); //判断map是否为空,若是返回1,否则返回0 unordered_map.size(); //返回map中元素的个数 unordered_map.find(s); //返回键为s的迭代器,若不存在,则返回尾迭代器 unordered_map.count(s); //返回键为s的键值对出现的次数,0或1 unordered_map.begin(); //返回指向q中第一个元素的迭代器 unordered_map.end(); //返回指向q最后一个元素下一个位置的迭代器(尾迭代器)



