首页 / C++ / c++中map按key和value排序
c++中map按key和value排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++中map按key和value排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2788字,纯文字阅读大概需要4分钟。
内容图文
![c++中map按key和value排序](/upload/InfoBanner/zyjiaocheng/1265/b2f39d4c4dc74da891fd1cc1ccc9413d.jpg)
1 ``` 2 #include<iostream> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6 #include<set> 7usingnamespace std; 8 9/*按key升序*/10void test01(){ 11 map<string,int,less<string> > map1; 12 map1.insert(pair<string,int>("aba",3)); 13 map1.insert(pair<string,int>("aaa",2)); 14 map1.insert(pair<string,int>("ddd",1)); 15 map1.insert(pair<string,int>("ccc",4)); 1617for(map<string,int>::iterator it=map1.begin(); it!=map1.end(); it++ ){ 18 cout<<(*it).first<<" : "<<(*it).second<<endl; 19 } 20} 21/*按key降序*/22void test02(){ 23 map<string,int,greater<string> > map1; 24 map1.insert(pair<string,int>("aba",3)); 25 map1.insert(pair<string,int>("aaa",2)); 26 map1.insert(pair<string,int>("ddd",1)); 27 map1.insert(pair<string,int>("ccc",4)); 2829for(map<string,int>::iterator it=map1.begin(); it!=map1.end(); it++ ){ 30 cout<<(*it).first<<" : "<<(*it).second<<endl; 31 } 32} 33/*----------------------------------------------------*/34/*编写类或者结构体按key升序或者降序*/35class flag{ 36public: 37booloperator()(string v1,string v2){ 38return v1<v2; 39 } 40}; 4142void test03(){ 43 map<string,int,flag> map1; 44 map1.insert(pair<string,int>("aba",3)); 45 map1.insert(pair<string,int>("aaa",2)); 46 map1.insert(pair<string,int>("ddd",1)); 47 map1.insert(pair<string,int>("ccc",4)); 4849for(map<string,int>::iterator it=map1.begin(); it!=map1.end(); it++ ){ 50 cout<<(*it).first<<" : "<<(*it).second<<endl; 51 } 52} 53/*-------------------------------------------------------*/54/*自定义编写类或者函数或者结构体进行值排序*/55/*自定义函数编写不用(),自定义类或者结构体需要()*/56bool flag_2(pair<string,int> o1,pair<string,int> o2){ 57return o1.second>o2.second; 58} 59class flag_2{ 60public: 61booloperator()(pair<string,int> o1,pair<string,int> o2){ 62return o1.second>o2.second; 63 } 64}; 65struct flag_2{ 66booloperator()(pair<string,int> o1,pair<string,int> o2){ 67return o1.second<o2.second; 68 } 69}; 70void test04(){ 71 map<string,int> map1; 72 map1.insert(pair<string,int>("aba",3)); 73 map1.insert(pair<string,int>("aaa",2)); 74 map1.insert(pair<string,int>("ddd",1)); 75 map1.insert(pair<string,int>("ccc",4)); 7677//利用vector进行value排序78 vector< pair<string,int> > dic1(map1.begin(),map1.end()); 79 sort(dic1.begin(),dic1.end(),flag_2()); 8081for(int i=0; i<dic1.size(); i++ ){ 82 cout<<dic1[i].first<<""<<dic1[i].second<<endl; 83 } 84} 85int main(){ 86//test01(); 87//test02(); 88//test03();89 test04(); 9091return0; 92} 9394 ```
原文:https://www.cnblogs.com/Bravewtz/p/10325821.html
内容总结
以上是互联网集市为您收集整理的c++中map按key和value排序全部内容,希望文章能够帮你解决c++中map按key和value排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。