多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# :-: **Map** ## **map简介** map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 ##** map的功能** 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。 快速插入Key - Value 记录。 快速删除记录 根据Key 修改value记录。 遍历所有记录。 ## **使用map** 使用map得包含map类所在的头文件 `#include<map> //注意,STL头文件没有扩展名.h` map对象是模板类,需要关键字和存储对象两个模板参数: `map<int,string> personnel;` 这样就定义了一个用int作为索引,并拥有相关联的指向string的指针. ### **在map中插入元素** 改变map中的条目非常简单,因为map类已经对[]操作符进行了重载 enumMap[1] = "One"; enumMap[2] = "Two"; ..... 这样非常直观。 ## **遍历** 用迭代器来访问元素 ~~~ for (map<string, int>::iterator it = m1.begin(); it != m1.end(); it++) { cout << it->first<<" "<<it->second << endl; //注意用法,不是用*it来访问了。first表示的是key,second存的是value } ~~~ ## **map的基本操作函数**:       begin()          返回指向map头部的迭代器       clear()         删除所有元素       count()          返回指定元素出现的次数       empty()          如果map为空则返回true       end()            返回指向map末尾的迭代器       equal\_range()    返回特殊条目的迭代器对       erase()          删除一个元素       find()           查找一个元素       get\_allocator()  返回map的配置器       insert()         插入元素       key\_comp()       返回比较元素key的函数       lower\_bound()    返回键值>=给定元素的第一个位置       max\_size()       返回可以容纳的最大元素个数       rbegin()         返回一个指向map尾部的逆向迭代器       rend()           返回一个指向map头部的逆向迭代器       size()           返回map中元素的个数       swap()            交换两个map       upper\_bound()     返回键值>给定元素的第一个位置       value\_comp()      返回比较元素value的函数 ## **一些例题** * [水果](http://acm.hdu.edu.cn/showproblem.php?pid=1263) * [Let the Balloon Rise](http://acm.hdu.edu.cn/showproblem.php?pid=1004)