简介
首先,map容器中所有元素都是成对出现的,其中第一个元素为key,起到索引的作用,会自动按照key值的大小排序;第二个语速为value,用于存放值。其中map的key值不可重复,而multimap的key值可以重复。
map属于关联式容器,其底层结构是二叉树。
1.遍历
迭代器遍历
void PrintfMap(map<int,int> &m)
{
for(map<int,int>::iterator it=m.begin();it!=m.end();it++)
{
cout<<"key="<<it->first<<"value="<<it->second<<endl;
}
cout<<endl;
}
2.创建
Map中中常用创建方法有三种:
1.默认创建
map<ElemType1,ElemType2> m1;
m1.insert(pair<ElemType1,ElemType2>(key1,value1));
m1.insert(pair<ElemType1,ElemType2>(key2,value2));
2.拷贝创建
map<ElemType1,ElemType2> m2(m1);
3.重载等号赋值创建
map<ElemType1,ElemType2> m3;
m3=m1;
实例:
//02创建
void test02()
{
map<int,int>m1;
m1.insert(pair<int,int>(21,201));
m1.insert(pair<int,int>(22,202));
m1.insert(pair<int,int>(23,203));
m1.insert(pair<int,int>(24,204));
PrintfMap(m1);
map<int,int> m2(m1);
PrintfMap(m2);
map<int,int> m3;
m3=m1;
PrintfMap(m3);
}
运行结果图:
3.增加元素
Map中常用的有以下两种插入元素的方法,其得到的结果是一样的:
m.insert(pair<int,int>(1,10));
m.insert(make_pair(1,10));
实例:
//03增加元素
void test03()
{
map<int,int>m0;
m0.insert(pair<int,int>(31,301));
m0.insert(pair<int,int>(32,302));
m0.insert(pair<int,int>(33,303));
m0.insert(make_pair(34,304));
m0.insert(make_pair(35,305));
m0.insert(make_pair(36,306);
PrintfMap(m0);
}
运行结果图:
4.删除元素
Map中删除元素主要使用erase函数。
m.eras