在基本掌握map容器及其迭代器的基础下,本节将带领读者一起谈论如何获取map中的value。

前面我们提到map重载了'[]'符号,能够通过'[]'添加或查看value;还有find()输入key获取指向value的迭代器;其实我们还能通过at()来获取value,count()查看value是否存在。

通过代码分别展示3种方式:

#include<bits/stdc++.h>//万能头,以效率为中心 
#include<string>
#include<map>//包含头文件,养成好习惯 
/*3种访问map中value的方法*/
using namespace std;
void test()
{
map<int ,string> mp{{0,"Dptcpp"},{1,"编程问答"},{2,"计算机二级C语言"},{3,"数据结构教程"},{4,"Java教程"}};//建议这样初始化 ,直观具体
/*1.at()*/
 cout << "找出所有key=4的值:"<<mp.at(4)<<'\n';
 /*2.find()*/
 cout << "找出所有key=3的值:"<< mp.find(3)->second << '\n';
 /*3.'[]'*/
cout << "找到key=0的值:" << mp[0] << "\n";
}
int main(){
    test();
    return 0;
}

编译结果如下:

访问map中的value

在知道key值的情况下,我们最好使用at(),其次是find(),最后是'[]',原因在于如果没有存在key="输入参数"的元素,at()和find()都会报错,而'[]'直接给你创建一个“[输入的key]=默认值的元素(不同数据类型有不同的默认值),虽然不存在报错问题,但是却失去了对数据的绝对控制,破坏数据的完整性。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)