C++征途 --- map/multimap容器

发布于:2023-01-04 ⋅ 阅读:(294) ⋅ 点赞:(0)

第一部分 --- map基本概念

 1.一个map中的每个key值(索引)是唯一的,我们能够通过这个唯一的key在大量的数据中快速的找到特定的值 ---- 注意这里仅仅是说key值唯一,value值是可以重复的

2.但是在multimap中可以有重复的key值,也可以有重复的value值


第二部份 --- map构造和赋值

 1.由于mao中装的元素是对组,所以我们插值的时候也必须插对组元素,插值方法如下:

这里用了一个比较巧妙的操作:我们是以匿名对组对象以及有参构造函数的形式插值到map容器中的,通过这种方式我们可以在插入元素后就将我们创建的对组自动销毁,这样子即实现了插入操作(所谓的插入操作即将我们传入的对组中的两个数据各拷贝一份后存到容器中)同时也节省了内存空间 


第三部分 --- map的大小和交换


第四部分 --- map插入和删除

1. 注意由于map中的元素只能是对组,所以我们能插入的元素也只有对组

2.插入的几种写法

 推荐用第二种方式来插入元素,然后第三种方式是采用值类型的方法来插入数据

第四种方式一般不用来插值,因为这种插值方式出错概率高,它常用来通过key访问对应的value


第五部分 --- map查找和统计

 此处的count方法统计的是map容器中有几个元素的key值等于我们给定的参数的key值

 注意find方法根据key值找到元素后会返回一个指向这个元素的迭代器


第六部分 --- map容器排序

map容器中的排序是根据元素的key值从小到大排的,那么我们能不能更改这个排序规则呢?

答案是可以的,使用的方法是仿函数法 --- 和set容器一样

操作方法都是一样的

1.创建类;2.重载函数(返回值为bool类型);3.在重载的函数中写排序规则(从大到小,return v1>v2,从小到大:return v1<v2);4.将类名写到容器的模板参数列表中 

自定义类型数据作为key时进行排序的的处理方法也是和set容器一样的,都是需要我们给容器指定一个排序规则


1.这个随机数范围是(0~9999)+10000 2.由于没有用上时间戳,随机数种子不会发生变化,无论生成多少次随机数都是,这些“随机数”都是一样的

 


网站公告

今日签到

点亮在社区的每一天
去签到