map和set的定义与应用

         map其实有很多人都不知到它的真正是什么意义,我以前也是一样,一个同学对我说:“这个map啊,其实就是一个下标可以达到很大的数组,比如定义一个map<int, int> m;,m数组的下标就可以在int范围以内呢!”

        我猜你们应该一听到过此类的回答吧!难到你们真的从来没有怀疑过他们说的话吗?(说实话,你们既然相信了他们的话那为什么还要点进我的博文呢?(⊙﹏⊙))map其实不是一个数组,他代表的其实是一个叫做“映射”的东西,说起来是很高大上,其实跟数组也没什么区别;

        比如,我们把数组的下标为0的更改为1,用map的语言来说的话,其实就是让3来映射1,注意,这里的让“x”的映射“y”的时候,“x”的值是可以为负数的,因为,我在这里再次强调一遍:他是让一个数去映射另一个数,而不是把一个数组的某一个下标给设置成另一个数。

我们接下来看一下map的常见使用方式(具体见截图):、

基础用法:

(马蜂优良)

带迭代器的用法:

(马蜂依旧优良……) 

以上就是map的基本定义了。


map例题及讲解:

于是他错误的点名开始了 - 洛谷https://www.luogu.com.cn/problem/P2580我们看到这道题,DALAO们肯定都想着用字典树,当时我用字典树wa10好吧!(当然主要原因是因为我是个蒟蒻……)

map的话,我们定义一个map<string, int>就行了啊!

上ac代码:

(防抄袭,截图版……😃)

set的定义与应用:

set没有什么故事可聊……

set其实就类似一个小根堆(优先队列)只不过换了些操作罢了……

不知道优先队列的朋友可以理解成自动从小到大排序

依旧:

我们接下来看一下set的常见使用方式(具体见截图):

基础用法:

 (马蜂优良)

带迭代器的用法:

以上就是set的基本定义了。

set例题及讲解:

 set存一下每个商品就行了:


上ac代码:

 (防抄袭,截图版……😃)

这篇文章就在一个代码中结束了!作者的所有截图代码都是再写博客时候现场打的,用时3小时,希望大家支持!

觉得博主写的不错的关注支持一下吧!我会继续努力的~

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值