map其实有很多人都不知到它的真正是什么意义,我以前也是一样,一个同学对我说:“这个map啊,其实就是一个下标可以达到很大的数组,比如定义一个map<int, int> m;,m数组的下标就可以在int范围以内呢!”
我猜你们应该一听到过此类的回答吧!难到你们真的从来没有怀疑过他们说的话吗?(说实话,你们既然相信了他们的话那为什么还要点进我的博文呢?(⊙﹏⊙))map其实不是一个数组,他代表的其实是一个叫做“映射”的东西,说起来是很高大上,其实跟数组也没什么区别;
比如,我们把数组的下标为0的更改为1,用map的语言来说的话,其实就是让3来映射1,注意,这里的让“x”的映射“y”的时候,“x”的值是可以为负数的,因为,我在这里再次强调一遍:他是让一个数去映射另一个数,而不是把一个数组的某一个下标给设置成另一个数。
我们接下来看一下map的常见使用方式(具体见截图):、
基础用法:
(马蜂优良)
带迭代器的用法:![](https://i-blog.csdnimg.cn/blog_migrate/97ab17851996a723c6d1914d6b49f9bf.png)
(马蜂依旧优良……)
以上就是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小时,希望大家支持!
觉得博主写的不错的关注支持一下吧!我会继续努力的~