【c++】map用法详解
LeeMooq
已于 2022-05-01 22:01:43 修改
21398
收藏 46
分类专栏: c++学习 文章标签: c++
版权
c++学习
专栏收录该内容
5 篇文章3 订阅
订阅专栏
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值
————————————————
版权声明:本文为CSDN博主「LeeMooq」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yyhyyhy/article/details/124531264