概述
刷题遇到好多时候都在使用map,索性今天就整理一下.
vector是向量,那map是什么呢?map翻译为映射.
比如定义一个数组,int a[10],就是定义了一个int 到 int 的映射.所以,看到局限性了吧,用数组定义,映射关系确定,都是从int类型映射到其他类型,那别的需求怎么办?我想要从string映射到int,用数组是没法实现了,由此,map出现了.
map定义
map<key,value> mp;//< >里面两个类型,第一个是key,第二个value
map<string int> mp;//这样就建立了从string到int的映射
map<set<int> string>//map的key和value也可以是stl容器
注意:如果是字符串到整型的映射,必须使用string而不能使用char数组,因为数组不能做键值
map元素访问:
跟vector一样呀,分下标访问和迭代器访问
(1)下标访问:
直接map[key]就可以了,和数组类似,不过由int变成了key的类型
(2)迭代器访问
map的迭代器访问和vector略有不同,因为map的这个迭代器it必须要能同时访问到key和value呀,所以:
it->first;//访问key
it->second;//访问value
注意:map是有序的!!!map是有序的!!!map是有序的!!!
map内部是使用红黑树实现的(set也是)所以在建立映射的过程中会对你设置的key从小到大排序.
map常用函数:
map的常用函数感觉和vector的没什么不同.简单介绍一下
这三个和vector一样,无非vector是对元素操作,map是对元素对操作
1.size()函数
2.clear()函数
3.erase()函数
有一个find()函数需要注意一下:
4.find()
map中的find()和string中的find()函数别弄混了哦.不过都是查找,稍微注意一下区别还是可以的.
在用map的find()函数的时候,不要查找不存在的key,否则会出现意想不到的错误,查询之前先判断.
而对于string中的find()就不用考虑这么多了,如果查不到就会返回string::npos.
最后
以上就是无私舞蹈为你收集整理的map简单使用的全部内容,希望文章能够帮你解决map简单使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复