map的两个值分别为key值和value值,map是按照key值进行排序的,无法直接对value排序。

可以将map的key和value组成一个新的结构PAIR,用一个PAIR型的vector存储map中的所有内容,对vecor按照value值进行排序。按顺序输出key。

//map按值排序
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;typedef pair<string, int> PAIR;  int cmp(const PAIR& x, const PAIR& y)//针对PAIR的比较函数
{  return x.second > y.second;  //从大到小
}  int main() {  map<string,int> nmap; nmap["LiMin"] = 90;  nmap["ZiLinMi"] = 79;  nmap["BoB"] = 92;  nmap.insert(make_pair("Bing",99));  nmap.insert(make_pair("Albert",86));  //把map中元素转存到vector中   vector<PAIR> vec(nmap.begin(),nmap.end());sort(vec.begin(), vec.end(), cmp); //排序for (size_t i = 0; i != vec.size(); ++i) {  //输出cout << vec[i].first <<" "<<vec[i].second<<endl;  }  return 0;
}

C++中如何给map按值排序_百度知道

//map按值排序
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;struct student{string name;int score;
};typedef pair<string, student> PAIR;  int cmp(const PAIR& x, const PAIR& y)//针对PAIR的比较函数
{  return x.second.score > y.second.score;  //从大到小
}  int main() {  map<string,student> nmap; student stu;stu.name = "LiMin";stu.score = 90;nmap.insert(make_pair(stu.name, stu));stu.name = "ZiLinMi";stu.score = 79;nmap.insert(make_pair(stu.name, stu));stu.name = "BoB";stu.score = 92;nmap.insert(make_pair(stu.name, stu));stu.name = "Bing";stu.score = 99;nmap.insert(make_pair(stu.name, stu));stu.name = "Albert";stu.score = 86;nmap[stu.name] = stu;  cout <<endl<< "map:"<<endl;    for(auto it = nmap.begin(); it != nmap.end(); it++){cout<<it->first<<' '<<(it->second).score<<endl;    }// 把map中元素转存到vector中   vector<PAIR> vec(nmap.begin(),nmap.end());cout <<endl<< "排序前:"<<endl;  for (size_t i = 0; i != vec.size(); ++i) {  //输出cout << vec[i].first <<" "<<vec[i].second.score<<endl;  }    // 排序sort(vec.begin(), vec.end(), cmp); cout <<endl<< "排序后vec1:"<<endl;  for (size_t i = 0; i != vec.size(); ++i) {  //输出cout << vec[i].first <<" "<<vec[i].second.score<<endl;  }  cout <<endl<< "排序后vec2:"<<endl;  // 迭代器for (auto it = vec.begin(); it != vec.end(); it++) {  //输出cout << (*it).first <<" "<<(*it).second.score<<endl;  }  return 0;
}

C++ std::map sort 如何按值排序 自定义比较函数 比较对象某个字段相关推荐

  1. 关于 std::set/std::map 的几个为什么

    2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不是 OO 意义下的 interfac ...

  2. c语言中std::map_在现代C ++中明智地使用std :: map

    c语言中std::map std::map and its siblings(std::multimap, std::unordered_map/multimap) used to be my fav ...

  3. std::set/std::map 的几个为什么

    陈硕 (chenshuo.com) 2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不 ...

  4. 出书最多--map值排序

    假定蒜厂新进了m(10≤m≤999) 本图书,它们都是由n(1≤n≤26) 个作者独立或相互合作编著的.假设 mm 本图书编号为整数(11 到 999999),作者的姓名为字母('A'到'Z'),请根 ...

  5. boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::map的测试程序

    boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::map的测试程序 实现功能 C++实现代码 实现功能 boost::spirit模块实现将由某个分隔符分隔的任意键/ ...

  6. java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序

    在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...

  7. map std 浮点数索引_C std :: map持有任何类型的值

    Blindy的答案非常好(1),但只是为了完成答案:通过使用动态继承,还有另一种方法可以在没有库的情况下完成: class MyFieldInterface { int m_Size; // of c ...

  8. 58同城秋招笔试题解答 --map模式按value进行排序

    求字符串中字母重叠的次数并按要求输出(笔试题) 题目描述: 给定一个字符串,求出字母重叠出现的次数,最后按字典格式输出. 输入示例: aaabccbbbfffaddbaa 输出示例: a : 5 b ...

  9. c++ map iterator 获取key_前K个高频的元素衍生之Map的Value与Key排序

    前言 本篇文章总结来自九月份的每日一题 347-前K个高频的元素 思考 对于系列的题目就是计算利用到Hash表的属性的Key与Value的双属性,能够满足我们后面计算对于每一个元素出现的频率的同时还能 ...

  10. python中字典按键或键值排序

    字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...

最新文章

  1. 智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队
  2. C语言的 32个关键之和9个控制语言之关键字
  3. mongodb数据库磁盘碎片整理。
  4. Spring MVC POST中文乱码解决方案
  5. word经常用到的技巧
  6. matlab中uint16(uint8)函数的用法
  7. 湖北计算机技能高考专科学校排名,湖北2021年技能高考专科录取分数线
  8. ICPC2020小米网络选拔赛第一场复盘
  9. OPENCV C++ 找到最大内接矩形(正方形)
  10. 在ubuntu 上安装golang
  11. android 5.0播放swf flash源码Demo
  12. Android 一体机研发之修改系统设置————声音
  13. MTK led闪烁改为呼吸灯模式
  14. NOIP2013普及组 题解
  15. 网狐6603所有版本--新金典版本最新漏洞。
  16. Python—类私有化属性和方法
  17. k8s 的etcd备份、CoreDNS和dashboard安装,集群升级,yaml详解
  18. 基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar
  19. 中文文本情感分类实战(weibo_senti_100k为数据集)
  20. xp计算机上的共享文档说是拒绝访问,WinXP电脑中的文件或文件夹拒绝访问如何解决?...

热门文章

  1. 通过CSS3 Media Query实现响应式Web设计
  2. python-day9-函数初识-三元运算符
  3. [HAOI2010]计数(组合数学)(数位DP)
  4. 多线程总结之旅(9):线程同步之事件
  5. iOS开发之--HTTP请求
  6. Labview实现脉波调制( PDM )
  7. sql2008 表名为全数字时查询报错
  8. linux pdf 合并 脚本,在Linux中使用脚本结合多个pdf文件?
  9. linux 6.5 mongdb php扩展插件,linux下为php添加mongodb扩展
  10. python中out函数_cython函数输出与python函数outpu略有不同