map容器是一个键值对key-value的映射,其内部实现是一棵以key为关键码的红黑树。
创建一个map
map<key_type, value_type> mp;
map<int, int> mp;
map<string, int> mp;
[]操作符
mp[key]; //返回Key所对应的value值,时间复杂度为 O(logn)
既可以通过mp[key]获取值,也可以直接通过hashMap[key]修改值
其他操作
size/empty/clear/begin/end
h.find(x)在变量名为h的map中查找key为x的二元组
mp.beign()// 返回第一个键值对
mp.end()//返回最后一个键值对的下一个位置
样例
#include <iostream>
#include <map>
using namespace std;
int main(){
int n;
map<int, int> mp;
int num;
cin >> n;
for(int i = 0; i < n; i ++){
cin >> num;
mp[num]++;
}
return 0;
}
输入数据
10 3 8 8 3 2 2 2
mao的变化情况
num: 10 mp[10]:1
num: 3 mp[3]:1
num: 8 mp[8]:1
num: 8 mp[8]:2
num: 3 mp[3]:2
num: 2 mp[2]:1
num: 2 mp[2]:2
num: 2 mp[2]:3
数据
520 888 364 -566 100 242 932 139 -192 -28 -566 -237 560 -228 -129 -313 -107 -129 358 -228 358 144 560 364 932 -271 520 520 60 716 -662 351 -115 351 -16 716 100 -237 376 -115 -564 -111 -228 242 376 210 -662 -756 60 358 364 -821 -662 242 765 -25 665 418 82 929 -206 60 139 888 929 -566 -107 -16 588 -115 665 -25 -374 472 100 -192 -662 665 358 210 -374 -731 -25 210 376 520 144 472 243 -206 -564 -756 -271 665 608 -228 376 -107 588 -564
遍历map
iter->first -821 iter->second 1
iter->first -756 iter->second 2
iter->first -731 iter->second 1
iter->first -662 iter->second 4
iter->first -566 iter->second 3
iter->first -564 iter->second 3
iter->first -374 iter->second 2
iter->first -313 iter->second 1
iter->first -271 iter->second 2
iter->first -237 iter->second 2
iter->first -228 iter->second 4
iter->first -206 iter->second 2
iter->first -192 iter->second 2
iter->first -129 iter->second 2
iter->first -115 iter->second 3
iter->first -111 iter->second 1
iter->first -107 iter->second 3
iter->first -28 iter->second 1
iter->first -25 iter->second 3
iter->first -16 iter->second 2
iter->first 60 iter->second 3
iter->first 82 iter->second 1
iter->first 100 iter->second 3
iter->first 139 iter->second 2
iter->first 144 iter->second 2
iter->first 210 iter->second 3
iter->first 242 iter->second 3
iter->first 243 iter->second 1
iter->first 351 iter->second 2
iter->first 358 iter->second 4
iter->first 364 iter->second 3
iter->first 376 iter->second 4
iter->first 418 iter->second 1
iter->first 472 iter->second 2
iter->first 520 iter->second 4
iter->first 560 iter->second 2
iter->first 588 iter->second 2
iter->first 608 iter->second 1
iter->first 665 iter->second 4
iter->first 716 iter->second 2
iter->first 765 iter->second 1
iter->first 888 iter->second 2
iter->first 929 iter->second 2
iter->first 932 iter->second 2