学习使用STL的map
了解map
map主要是做映射
假设有一个一个的记录(学生记录),由学号和学生的姓名性别宿舍号…
主键是学号
查的的时候通过查询学号。
我们通过数据库查询。
我们做上一个结构体:由**学号和指针(映射关系)**构成。关系到一条一条的记录上。但是这个学号是可以从小到大排序的。(二分查询)(查询速度是非常快的)
如果说,我们的数据库要不断的插入和删除数据,插入和删除的频率非常大,因为是插入到有序的数组,这时候就不适合二分查询,我们可以使用map(底层是红黑树)
不关是要保存学号,还要保存学号的记录集(数据关联的东西)。
从根节点一查,如果是,就是要查询的,如果大于,跑到右边节点去查找,反之则反。(索引结构建立的速度快)(插入和删除 快)
成员类型
map的使用示例
示例1
实现:查询:我们输入年龄age,返回输入年龄age对应的字符串值
实现代码如下:
迭代器是算法和容器之间的纽带!
运行程序
把mylist的值全部打印出来
方法1:
方法2:
注意:
auto的x不是迭代器,是mylist的value域的别名。
迭代器是智能指针,指向value结点,*it才是元素本身。
示例2
下面两种写法都可以