一、简介
1. 头文件
# include <map>
//注意,STL头文件没有扩展名.h
2. map是STL的一个关联容器,可以将任何基本类型映射到任何基本类型。
容器分为关联容器和顺序容器,其中,顺序容器包括string、数组、链表、双端队列等;关联容器分为有序容器(包括map、multimap、set、multiset)、无序容器(包括unorder_map、unorder_multimap、unorder_set、unorder_multiset)、hash_map。
关联容器的元素是按照关键字来保存和访问的。与之相对,顺序容器中的元素是按元素在容器中的位置来顺序保存和访问的。
3. 提供一对一的数据处理,key-value键值对,其类型可以自己定义,第一个称为关键字,第二个为关键字的值。
4. 内部自动排序。
5. 特点是增加和删除节点对迭代器的影响很小,除了被操作的节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。
6. key不重复,当两次插入相同key值的元素时,保留第一次插入的元素,不覆盖。
二、定义&访问
1. map的定义
map<type1name,type2name> name;//第一个是键的类型,第二个是值的类型
eg:
//定义了一个名为m的map对象,内容为空,key类型为strin