Map是STL的一个关联容器,map中的元素是由关键字—值(key-value)对组成的集合:关键字起到索引的作用并且唯一(multimap 没有这个限制),值则表示与索引相关联的数据。
map类型通常被称为关联数组,关联数组与一般的数组类似,不同之处在于其下标不必是整数,通过关键字查找,而不是位置进行查找。
map定义与初始化
定义map时,必须指明关键字类型和值的类型。
map<int,string> id_name; //简单定义一个名字与ID的一个map
map<int,string> id_name={{1,"james"},{2,“jane”},{3,"joyce"}};//定义并初始化
map基本操作
//添加加元素
id_name.insert({4,"tome"});
id_name.insert(make_pair(4,"tome"));
id_name.insert(pair<int,string>(4,"tome"));
id_name.insert(map<int,sting>::value_type(4,"tome"));
id_name[4]="tome";//这种方式可覆盖原有的映射值,上面四种方式不能覆盖原有映射值
//删除元素
id_name.erase(K); //删除关键值为K的元素
id_name.erase(P); //删除迭代器P指定的元素,必须是真实元素,不能是id_name.end();
//元素访问
id_name.find(K);//指向关键字K的元素,并返回迭代器,如果不存在关键字 返回尾后迭代器
id_name.count(K);//存在关键字K 返回1,不存在返回0;