什么是 map
map 很多人说是一种关联容器,又提什么 stl 一堆的东西
- 是一种映射的关系,它有两个值,key,value,建立的关系是 key -> value的映射。
key在整个map中是唯一的。- map 以
key有序。
使用之前
在 cpp 中使用 map 的时候必须包含#include <map> 这个语句
定义一个map变量
map<key_type, value_type> name;
map<int, double> p;from: PATEST -A1002-题解
map 的使用
增
增加之前,需要保证增加的数据类型为 pair,如不是,应当使用
make_pair(first, second);来凑成一对。
p.insert(var);
增加时,如果 first 的值在 p 中已经存在,插入失败。
删
改
查
定义一个迭代器,无论正向,反向都可以。
我所理解的迭代器是一种特殊的指针。
for (map<int, double>::reverse_iterator iter = p.rbegin();
iter != p.rend(); iter++)
这样就可以直接从 map 的尾部开始查询。
注意
- 使用迭代器
iter访问firstsecond的元素时,需要以(*(iter)).first的形式访问。 p.end();指向的是map的最后内存单元,而不是最后一个元素。- 访问
p的最后一个元素时,需要使用反向迭代器reverse_iterator。