【c++】map用法详解

map是c++标准库中定义的关联容器,是关键字(key)-值(value)对的结合体。本文记录其用法与案例。

1、头文件

#include <map>    //stl头文件不带.h

2、初始化

map<int,string> list1;
map<int,string> list2 = 
    {{1,"java教程"},{2,"c++教程"},{3,"python教程"}};
map<int,string> list3 = 
    {pair<int,string> (1,"java教程"),pair<int,tring> (2,"c++教程")};

3、添加对象

添加元素一般使用insert函数:

map<int,int> list1;
list1.insert(pair<int,int> (1,15));
list1.insert({2,13});
//两种方式添加元素

//遍历整个list1 
for (auto iter = list1.begin(); iter != list1.end(); ++iter) {				
       cout << iter->first << "  " << iter->second << endl;
    }

输出结果为:

注意:map中key的值是唯一的,如果插入一个已经存在的key值会导致原先值的覆盖,请尽量避免这样。

4、删除元素

删除元素可以使用erase函数

list1.erase(1);    //括号内为key值,也就是左值

5、修改元素

可以直接根据对应的key值去修改,但是key值是不能修改的,只能更改value

map<int,int> list1;
list1.insert(pair<int,int> (1,15));
list1[1] = 5;

cout<<list1[1];            //输出结果为5而不是15

6、查找元素

可以直接通过key值查找,如果要通过value值找ksy的话需要借助find函数

map<int,int> list1 = 
	  {{1,12},{2,15},{3,18},{4,22}};

cout<<list1[1];        //输出结果为12
cout<<list1[12];       //错误,不能直接用value值
cout<<find(12)->first;    //输出1
cout<<find(1)->second;    //输出12

7、其他用法

map<string,int> map_1;
map_1.clear();                //清除所有元素
map_1.empty();                //如果为空返回1,负责返回0
map_1.size();                 //返回容器的元素个数
map_1.max_size;               //返回容器可以容纳的最大元素

//可以用过迭代器与first,second访问元素
map_1.begin()->first;         //结果为容器的第一个元素的key值
map_1.begin()->second;         //结果为容器的第一个元素的value值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值