当前位置 博文首页 > 小李的博客:C++ STL Map常用方法详解
? map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)
? map<typename1, typename2> mp;
? 注:如果是字符串到整型的映射,必须使用string而不能用char数组
? 和访问普通的数组是一样的
#include <bits/stdc++.h>
#include <map>
using namespace std;
int main(){
map<char, int> mp;
mp['c'] = 20;
mp['c'] = 30;
cout<<mp['c']<<endl;
return 0;
}
输出结果:
30
? map<typename1, typename2>::iterator it;
? map可以使用it->first来访问键,使用it->second来访问值
#include <bits/stdc++.h>
#include <map>
using namespace std;
int main(){
map<char, int> mp;
mp['a'] = 20;
mp['b'] = 30;
mp['c'] = 40;
for(map<char, int>::iterator it = mp.begin(); it != mp.end(); it++){
cout<<it->first<<' '<<it->second<<endl;
}
return 0;
}
输出结果:
a 20
b 30
c 40
? map会以键从小到大的顺序自动排序
// 6、Map
#include <bits/stdc++.h>
#include <map>
using namespace std;
int main(){
map<string, int> mm; //定义一个键为String类型,值为Int类型的map
mm["bb"] = 2;
mm["aa"] = 1;
mm["cc"] = 3; //map插入值
//遍历map
cout<<"map中元素的个数为: "<<mm.size()<<endl;
cout<<"遍历整个map"<<endl;
for(map<string, int>::iterator it = mm.begin(); it != mm.end(); it++){
cout<<it->first<<':'<<it->second<<endl;
}
cout<<"观察插入map元素可知,map会以键从小到大的顺序自动排序"<<endl;
if(mm.find("aa") != mm.end()){
cout<<"map中包含aa这个键"<<endl;
} else{
cout<<"map中不包含aa这个键"<<endl;
}
mm.erase("aa"); //删除aa这个键
if(mm.find("aa") != mm.end()){
cout<<"map中包含aa这个键"<<endl;
} else{
cout<<"map中不包含aa这个键"<<endl;
}
cout<<"map中元素的个数为: "<<mm.size()<<endl;
return 0;
}
csmap中元素的个数为: 3
遍历整个map
aa:1
bb:2
cc:3
观察插入map元素可知,map会以键从小到大的顺序自动排序
map中包含aa这个键
map中不包含aa这个键
map中元素的个数为: 2