什么是 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
访问first
second
的元素时,需要以(*(iter)).first
的形式访问。 p.end();
指向的是map
的最后内存单元,而不是最后一个元素。- 访问
p
的最后一个元素时,需要使用反向迭代器reverse_iterator
。