map是一个键-值(key-value)映射容器。
形式有
map<int,int> mp; map<double,string> mp; map<string,int> mp; map<<set<int>,string> mp;
还有很多,这里只是举例。
map是可以通过下标访问。比如:map["abc"] = 5,不要觉得奇怪这是可能的也是可以的!
一定要记住键是唯一的,就好像数学的函数里一个x只能对应一个y一样。要是出现了
map['c'] = 20; map['c'] = 30;
那么20一定会被覆盖,最后map['c']对应的值是30。
map的迭代器定义与其他STL容器一样:
map<typename1,typename2>::iterator it;
但有一点要特别说一下map迭代器的是使用方式很独特的:it->first 用来访问键;it->second 用来访问值。
接下来说一下,map的常用功能函数。
1、find(key);返回的是迭代器!!若是没找到目标键返回mp.end()。
2、erase(it);或 erase(key);或 erase(first,last); 三种写法。
3、size();返回键值对的个数
4、clear();清空map
用法和其他的STL差不多,这里不加一赘述。
用途:
①建立字符(字符串)、浮点数与整数之间的映射关系。
②判断大整数或者其他类型数据是否存在的题目。
③字符串与字符串之间的映射。