首页 > 编程语言 >【c++】map用法详解

【c++】map用法详解

时间:2022-11-28 15:46:00浏览次数:34  
标签:map 教程 元素 list1 c++ 详解 key

【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

标签:map,教程,元素,list1,c++,详解,key
From: https://www.cnblogs.com/zxdplay/p/16932339.html

相关文章

  • 常用css属性flex: 1详解
    flex:1实际代表的是三个属性的简写flex-grow是用来增大盒子的,比如,当父盒子的宽度大于子盒子的宽度,父盒子的剩余空间可以利用flex-grow来设置子盒子增大的占比flex-shrin......
  • python grammar、C/C++ Python Parsing Engine
    pythongrammar、C/C++PythonParsingEnginecatalog1.Python语言简介2.Python模块3.嵌入式Python解析引擎:C++调用Python4.Python调用C(b......
  • C++ 进程间通信
    https://blog.csdn.net/weixin_38416696/article/details/90719388一,C++常用进程间通信管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖......
  • vue的.sync修饰符用法及原理详解
    vue.sync的历史vue.sync修饰符最初存在于vue1.0版本里,但是在2.0中被移除了。但是在2.0发布之后的实际应用中,vue官方发现.sync还是有其适用之处,比如在开发可复......
  • C++中class中对私有变量的访问
    C++中写class时,对私有变量通常使用set和get方法来进行访问,比较标准的例子classA{intia{};intib{};intic{};public:A(inta,intb,intc......
  • 12 STL-map/multimap
    ​ 重新系统学习c++语言,并将学习过程中的知识在这里抄录、总结、沉淀。同时希望对刷到的朋友有所帮助,一起加油哦! 每一次学习都是为了追求智慧!写在前面,本篇章主要介......
  • c++命名规范
    变量、函数名、名字空间用snake_case(全小写,单词之间用下划线连接),全局变量加“g_”前缀_自定义类名用CamelCase(单词首字母大写),成员函数用snake_case,成员变量加“m......
  • 详解sklearn的多分类模型评价指标
    说到准确率accuracy、精确率precision,召回率recall等指标,有机器学习基础的应该很熟悉了,但是一般的理论科普文章,举的例子通常是二分类,而当模型是多分类时,使用sklearn包去计......
  • TCP/UDP的连接与关闭详解
    https://blog.csdn.net/pupoqian3720/article/details/81290011传输层:总体作用:在广域网中建立数据传输通道,进行数据传输,负责端到端的通信那么是什么是端到端呢?A:两个方......
  • C++机票购买系统
    C++机票购买系统该系统有两类用户,会员(多名)和管理员(1名)其中,会员功能包括:1、首先注册并录入个人信息,包括:用户名,密码,生日,邮箱。注册后,自动设置会员编号。2、登录不......