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 }
整个题解代码就不放了,基本上重要的都写完了