map映射的基础用法

参考:(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的值并进行修改。

 

上一篇:noip模拟43(待补)


下一篇:与Java中的@Override相反的标记