本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。
map
【map:地图、图谱】
理解为地图(我感觉跟python的字典【dictionary】一样)。一个map中包含了多个键值对,一个键值对可以理解为一个特殊的结构体。
键值对:即包含关键字(即key)和值(即value或data)的一个“对”。故称为键值对。
需提供头文件#include <map>。
创建
不用指定长度。尖括号内第一个是key的数据类型,第二个是value的数据类型。
1 map <string,int> m1; 2 map <string,string> m2;
添加
类似于python的字典,如果只用C说的话,应该从数组上进行扩展理解。
1 m1["我家门高"] = 7; 2 m2["我家门材质"] = "铝合金";
访问
可以由键值对的键值获取此键值对应的值。因此,键和值之间可以具有一对一、多对一的关系。(没有一对多)
如果存在该键,则返回该键对应的值;如果不存在该键,则返回0。
1 cout << m1["我家门高"];
遍历
使用迭代器进行遍历。同时因为迭代器的p会遍历一个map中的所有元素指针(每个元素都是一个键值对【可以理解为结构体】,包含key和value两个值;key是键值对结构体的first变量,value是键值对结构体的second变量),因此可以利用迭代器获取该map中所有的键和值。
for(auto p=m.begin();p!=end();p++){ //p为指针,故用箭头;键可用first获取,值可用second获取 cout << "键" << p->first << "对应的值为" << p->second; }
获取长度
使用.size()方法获取map的长度。
cout << m1.size();标签:map,cout,浅入,value,获取,键值,C++,key From: https://www.cnblogs.com/Jianxian/p/17986959