1、map的定义
- map是一类关联式容器,它是STL模板类。关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置类获取。它的特点是增加和删除节点对迭代器的影响很小,除了操作节点,对其他的节点都没有什么影响。对于迭代器来说,不可以修改键值,只能修改其对应的实值。
- map类所在的头文件是#include <map> //注意:STL头文件没有扩展名.h
map对象是模板类,需要关键字和存储对象两个模板参数,基本的定义模式如下:
std:map<int, string> personnel;
这样就定义了一个以int为键,值为string的map对象personnel。
map中定义了以下三个类型:
map<K, V>::key_type : 表示map容器中索引的类型,即键的类型;
map<K, V>::mapped_type : 表示map容器中键所关联的值的类型;
map<K, V>::value_type : 表示一个pair类型,它的first元素具有const map<K, V>::key_type类型,而second元素有map<K, V>::mapped_type类型
对迭代器进行解引用时,将获得一个引用,指向容器中一个value_type类型的值,在此即是pair类型。
2、map的功能
- 自动建立Key - value的对应。key 和 value可以是任意你需要的类型,但是需要注意的是对于key的类型,唯一的约束就是必须支持<操作符;
- 根据key值快速查找记录&#x