美文网首页
31 map,mulitmap容器

31 map,mulitmap容器

作者: ca8519be679b | 来源:发表于2021-01-25 23:02 被阅读0次

基本概念

每个元素都是pair二元组,第一个元素做key起到索引作用,第二个元素为值value,插入时会按key自动排序,本质是关联型容器,底层是用二叉树实现,优点可以通过key找到value值

map,multimap的区别和set,multiset的一样,map是去重的,不可以插入重复的key值,而multimap是可以的

构造和赋值

1

如上,提供了默认构造和拷贝构造,以及=重载赋值,当然我们要导入头文件map

2

如上,我们提前使用了插入Insert,注意这里不是插入一个数值,而是插入pair对组,我们要使用pair的有参构造,如上,实现了插入输出

大小和交换

3

如上,方法size获得元素数量,empty还是返回是否为空,swap用于交换2个map对象

4

就是单纯的调用方法,没什么说的

插入和删除

5

如上,方法和set类似,没什么说的,对于multimap可以删除重复的key

6

如上,我们这里给展示下map对象的几种插值方法,第一种肯定见过了,make_pair也很常用,而第三种写的比较长不怎么用,第四种很像python字典使用吧,但是一般不建议使用,因为如果访问了不存在的键,会给添加元素,设置默认值value,除非我们确定key在map里,我们才使用其去访问

7

如上,我们只是想访问5,但是5不存在key内,map会给其插入,设定默认值

查找和统计

8

如上,2个方法,find返回的是迭代器,如果不存在,返回的是end位置,count返回int统计key的个数,对于map当然就是0,1,对于mulitset就是统计所有相同key的值

9

如上,我们先调用查找,通过find返回的迭代器和end比较是否相等来判断是否在m的key里

10

对于map而言,不允许重复插入相同key值,所以后面的20未生效

排序

我们知道set容器可以指定插入排序规则,map容器默认按照key大小进行排序,我们仍可以使用仿函数修改规则,

11

如上,没什么说的,需要注意的是构造使用了仿函数参数,迭代器记得也要加上

相关文章

网友评论

      本文标题:31 map,mulitmap容器

      本文链接:https://www.haomeiwen.com/subject/vklmzktx.html