[acm]关于map的一些知识

1.map的默认排序方式

map<T1,T2>   T1->键  |  T2->值  map内部的默认排序是以T1也就是键的升序


 

2.如何实现3个,多个元素对应的map

这个是我再做一个题的时候,从学长的代码里学到的,题目出自计蒜客的acm课程映射表的练习题

一开始我没有就只想到了用水果来对应值,但是没有想到这个地区如何和水果来配对,之后我发现可以用

1     map<string,map<string,int>> a;//注意里面也要有map哦

这种方式来定义,真的是太神奇了,定义了之后就是输入了,输入的时候可以用类似数组的方式,把3个值同时绑定

1     int num;
2     string fruit,place;
3     cin>>fruit>>place>>num;
4     a[place][fruit]+=num;

要稍微麻烦一点的就是这个输出了,但是一旦看过这个代码,知道这个形式了之后真的有种醍醐灌顶的感觉

1     for(map<string,map<string,int >>::iterator it=a.begin() ; it!=a.end() ; it++){
2         cout<<it->first<<endl;
3         for(map<string,int>::iterator itt=(it->second.begin()) ;  itt!=(it->second.end()) ; itt++){
4                 cout<<"   |----"<<itt->first<<"("<<itt->second<<")"<<endl;
5         }
6     }

整个题解代码就不放了,基本上重要的都写完了


原文地址:https://www.cnblogs.com/hoppz/p/12582556.html