0 map,STL关联容器,放置到里面的数据会自动排序而且排序速度很快,可以有二维map,可以遍历也可以单独映射找出某个值。
1 一维map
#include<map> #include<string> #include<iostream> using namespace std; int main() { map<string,int> m; m["a"]=1; m["b"]=2; m["c"]=3; map<string,int>::iterator it; for(it=m.begin();it!=m.end();++it) cout<<"key: "<<it->first <<" value: "<<it->second<<endl; return 0; } map<string,int>::iterator it; 定义一个迭代指针it。 it->first 为索引键值,it->second 为值。
2 二维map(注意格式!最后两个>之间一定要空格)
#include <iostream> #include <map> #include <string> using namespace std; int main() { int kase;cin>>kase; while(kase--){ map <string,map<string,int> >cangku;//两个>之间要空格 int sum;string name,place;int num; cin>>sum; while(sum--){ cin>>name>>place>>num; cangku[place][name]+=num; } map<string,map<string,int> >::iterator it;//两个>之间要空格 for(it=cangku.begin();it!=cangku.end();it++){ cout<< it->first <<endl; map<string,int>::iterator it_2; for(it_2=it->second.begin();it_2!=it->second.end();it_2++){ cout << " |----" << it_2->first << "(" << it_2->second << ")" <<endl; } } if(kase!=0) cout<<endl; } }