C++ 中 map 和 unordered

C++ 中 map 和 unordered,第1张

1. 区别和用法

map 和 unordered_map 都是键值对的容器。map 的底层通过树实现,且会自动为容器内元素按key进行升序排序。unordered_map 的底层通过哈希表实现,并不会自动排序。当创建一个不需要排序的字典时应使用 unordered_map,因为哈希表对元素的查找更快。

结论:需要排序的字典用 map,不需要排序的字典用unordered_map。

2. map 的用法
#include                         //map头文件
int x;
string s;
 
map m;                   //初始化一个名为m的map,默认按键的升序排列
map> m;  //初始化一个名为m的map,降序排列 
map[s] = x;	                          //在map中添加键值对 s-x
map.erase(i);		                  //删除map中迭代器为i的键值对(可配合find方法使用)
map.erase(s);		                  //删除map中键为s的键值对,返回删除个数
map.clear();		                  //清空map
map.empty();		                  //判断map是否为空,若是返回1,否则返回0
map.size();		                      //返回map中元素的个数
map.find(s);		                  //返回键为s的迭代器,若不存在,则返回尾迭代器
map.count(s);                         //返回键为s的键值对出现的次数,0或1
map.begin();		                  //返回指向q中第一个元素的迭代器
map.end();		                      //返回指向q最后一个元素下一个位置的迭代器(尾迭代器)
3. 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最后一个元素下一个位置的迭代器(尾迭代器)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/875560.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存