栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 中 map 和 unordered

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 中 map 和 unordered

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最后一个元素下一个位置的迭代器(尾迭代器)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/867734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号