map是关联式容器中的一种类型,其特点区别于序列式容器,序列式容器只是存储数据,如果取数据不是很方便,而关联式容器则是每一个数值对应一个键值,针对不同的键值可以取出对应的数据
简单的演示代码如下,默认对键值是升序排列的
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(int argc,char** argv)
{
map<string,string> mymap;
mymap["laozhang"]="haha";
mymap["laowang"]="hehe";
mymap["laoxiang"]="hengheng";
for(map<string,string>::iterator it=mymap.begin();it!=mymap.end();it++){
cout<<it->first<<"=>"<<it->second<<endl;}
map<string,string,greater<string>> mymap1;
mymap1.emplace("dog","wangwang");
mymap1.emplace("cat","miaomiao");
mymap1.emplace("pig","engheng");
cout<<"mymap1 size"<<mymap1.size()<<endl;
if(!mymap1.empty()){
for(map<string,string,greater<string>>::iterator i=mymap1.begin();i!=mymap1.end();i++){
cout<<i->first<<"=>"<<i->second<<endl;}
auto iter =mymap1.find("cat");
cout<<"cat shout:"<<iter->first<<"=>"<<iter->second<<endl;
cout<<"dog shout:"<<mymap1["dog"]<<endl;
cout<<"pig shout:"<<mymap1.at("pig")<<endl;
}
return 0;
}
如何插入键值对有三种方法 insert() emplace() emplace_hint() 后面两种效率高