参考:(5条消息) map 映射_happyaaakkk的博客-CSDN博客_map映射
一、什么是map映射?
定义:map容器是一个键值对key-value的映射。map的key和value可以是任意的数据类型(包括int、double、long long、string、struct、vector、queue等等)。
二、map映射的基本操作
1.map的声明
代码如下(示例):
map<int,int> mp;//定义了一个从int型到int型的映射
map<int,string> mp;//定义了一个从int型到string的映射
2.map的操作
以map<int,string>为例子
1.插入数据
mp.insert(pair<int,string>(2,"bbb"));//第一种插入方式
mp.insert(map<int, string>::value_type (1,"aaa"));//第二种插入方式
mp[3]="ccc";//第三种插入方式
2.容器的属性
map.size()//返回一个映射中元素的个数
map.empty()//若map为空则返回true
map.clear()//清空容器
map.begin()//返回指向map头部的迭代器
map.end()//返回指向map末尾的迭代器
3.访问容器中的元素
方式1.map<int,int>::iterator it;
#include<iostream>
#include<map>
using namespace std;
int main()
{
int a[5];
map<int,int>M;
a[0]=1;M[a[0]]++;
a[1]=2;M[a[1]]++;
a[2]=2;M[a[2]]++;
a[3]=4;M[a[3]]++;
a[4]=1;M[a[4]]++;
map<int,int>::iterator it;
for(it=M.begin();it!=M.end();it++)
cout<<it->first<<' '<<it->second<<endl;//it->first表示映射的前一个元素,it->second表示映射的后一个元素
return 0;
}
方式2(若前一个元素是int)
可用数组遍历
map<int,int> mp;
for(int i=1;i<=n;i++)//数组遍历
cout<<i<<" "<<mp[i]<<endl; //输出后一个元素
4.[]操作符
mp[key]返回映射mp中的自变量key映射到的value的值。
优点:可以通过mp[key]的操作来查询k映射到的value的值并进行修改。