map简单使用

刷题遇到好多时候都在使用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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值