提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
map提供一对一的数据处理,
key-value键值对,
类似:身份证号-名字。
key唯一,value可重复。
一、map的定义
map<type1,type2> m;
type1是key的类型,type2是value的类型。
二、map容器内元素的访问
类似vector有两种访问方式。
1.通过下标进行访问
m['a']=5;
key值为a,value值为5。类比数组。
2.通过迭代器进行访问
for(map<char,int>::iterator it=m.begin();it!=m.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}
first访问key,second访问value。
三、map常用函数
和vector很像。
erase()
删除元素
m.erase(it);
m.erase(m.begin(), m.end());
迭代器删除单个元素和范围删除。
int n = m.erase("123");`
删除指定元素。
find()
查找元素
iterator find (const key_type& k);
在容器中寻找值为k的元素,返回该元素的迭代器。否则,返回map.end()。
insert()
插入元素
m.insert(pair<int, string>(1, "i"));
pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。
m.insert(map<int, string>::value_type(222, "pp"));
用insert函数插入value_type数据
count()
计算指定元素出现的次数
m.count(key k);
如果 key 存在于容器中,则返回1,因为映射仅包含唯一 key 。如果键在Map容器中不存在,则返回0。
size()
计算元素个数
empty()
判断是否为空,空返回 true
clear()
清空容器