在基本掌握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; }
编译结果如下:
在知道key值的情况下,我们最好使用at(),其次是find(),最后是'[]',原因在于如果没有存在key="输入参数"的元素,at()和find()都会报错,而'[]'直接给你创建一个“[输入的key]=默认值的元素(不同数据类型有不同的默认值),虽然不存在报错问题,但是却失去了对数据的绝对控制,破坏数据的完整性。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程