map是什么?
map翻译为映射,是一种STL容器。STL容器可以看做是一个对象或者一个类,有自己的属性和方法。映射在数学上的定义是两个集合间元素的对应关系。在编程里,就是一种数据与另一种数据的对应关系,如字符串到整数的映射、字符到字符串的映射。map可以将任何基本类型映射到任何基本类型,也包括STL容器。在C语言中,数组也是一种映射,不过只能将整数映射到其它数据。 map和字典很相似,两个元素可以称为键和值,键是唯一的,但两个键对应的值是可以相同的。另外,map在C++中使用红黑树实现,键会自动从小到大排序。
定义(使用)
使用时要包含< map >头文件,也要使用using namespace std;
map<typename1,typename2> mp;
如:
map<string,int> mp;
数据访问
下标
其实是通过键来访问,下面用key表示键:
mp[key];
迭代器
迭代器定义:
map<typename1,typename2>::iterator it;
map中的每个映射含有两个元素,访问方式如下:
访问键:
it->first
访问值:
it->second
常用方法
方法 | 使用 | 时间复杂度 |
---|
find | it=find(key) | O(logN) | erase | erase(it),erase(key),erase(first,last) | O(1),O(logN),O(last-first) | size | map.size() | O(1) | clear | map.clear() | O(N) |
|