一、映射表
1、映射表
映射:两个集合之间的对应关系,一个元素对应另一个元素
C++中map函数定义在
#include
2、构造映射
map m 定义一个名为m,从T1到T2的映射,这时候m是一个空映射,map t 定义了一个从string 到int 的映射,我们可以把一个字符串和一个整数关联起来
3、插入一对映射insert()
insert()是向集合中插入一个新映射,参数是pair
pair 是标准库类型,定义在头文件utility,参数有两个,一个first,另一个second,并且重载<运算符,先比较first,再比较second,当我们创建一个pair,必须提供两个类型
例如 pair t 定义一个保存string和int的pair类型的变量t
make_pair(T1,T2) 返回由T1和T2组成的初始化的pair
加入映射的过程就是插入pair的过程,如果插入的时候key已经存在,就不会插入新的value代替以前的value,也就是这次插入无效
#include
#include
4、访问映射
dict【“Jack”】,访问“Jack”对应的值,如果“Jack”在集合中不存在,那么返回集合对应的初始值,int是0,string是空字符串
但是我们有时候仅仅是想做一个查找的操作,并不是想要插入映射,所以我们要提前检验映射是否存在,然后查找映射对应的值
5、判断关键字是否存在
判断关键字是否存在,可以使用count()函数,如果关键字存在返回1,不存在返回06、
#include
#include
6、映射迭代器
(*it).first 指向关键字,(*it).second指向关键字对应的值,C++遍历的过程是按照关键字从小到大排列的,和集合类似
#include
#include
7、清空映射
调用clear()函数清空集合元素和内存
C++map官方文档 :http://www.cplusplus.com/reference/map/map/erase/
二、二维映射
类似vector套vector,二维映射采用map套set,例如一个班有很多学生,我们使用set来存储班级姓名,
定义数据结构 map > 定义班级到班级对应所有学生姓名的映射,两个 >中间的空格不能少,例如对2班同学我们执行,dict[2].insert("Jack")从2班插入学生jack
还可以map 套map