319-学习使用STL的map

本文详细介绍了STL中map的数据结构,如何通过学号快速查询学生信息,以及其在数据库频繁插入删除场景中的优势。通过实例演示了如何用map实现年龄查询字符串和不同写法。重点在于展示了map的索引特性及其在性能上的提升。
摘要由CSDN通过智能技术生成

学习使用STL的map

了解map

map主要是做映射
假设有一个一个的记录(学生记录),由学号和学生的姓名性别宿舍号…
主键是学号
查的的时候通过查询学号。
我们通过数据库查询。
我们做上一个结构体:由**学号和指针(映射关系)**构成。关系到一条一条的记录上。但是这个学号是可以从小到大排序的。(二分查询)(查询速度是非常快的)
在这里插入图片描述
如果说,我们的数据库要不断的插入和删除数据,插入和删除的频率非常大,因为是插入到有序的数组,这时候就不适合二分查询,我们可以使用map(底层是红黑树)
不关是要保存学号,还要保存学号的记录集(数据关联的东西)。
在这里插入图片描述

从根节点一查,如果是,就是要查询的,如果大于,跑到右边节点去查找,反之则反。(索引结构建立的速度快)(插入和删除 快)

成员类型
在这里插入图片描述

map的使用示例

在这里插入图片描述

示例1

实现:查询:我们输入年龄age,返回输入年龄age对应的字符串值
在这里插入图片描述
实现代码如下:
迭代器是算法和容器之间的纽带!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行程序
在这里插入图片描述

把mylist的值全部打印出来
方法1:
在这里插入图片描述
方法2:
在这里插入图片描述
注意:
auto的x不是迭代器,是mylist的value域的别名。
迭代器是智能指针,指向value结点,*it才是元素本身。

示例2

下面两种写法都可以
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林林林ZEYU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值