STL(map和二维map/hdu1263)


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;
    }
}


你可能感兴趣的:(map,STL)