C++ std::map sort 如何按值排序 自定义比较函数 比较对象某个字段
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 如何按值排序 自定义比较函数 比较对象某个字段相关推荐
- 关于 std::set/std::map 的几个为什么
2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不是 OO 意义下的 interfac ...
- 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 ...
- std::set/std::map 的几个为什么
陈硕 (chenshuo.com) 2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不 ...
- 出书最多--map值排序
假定蒜厂新进了m(10≤m≤999) 本图书,它们都是由n(1≤n≤26) 个作者独立或相互合作编著的.假设 mm 本图书编号为整数(11 到 999999),作者的姓名为字母('A'到'Z'),请根 ...
- boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::map的测试程序
boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::map的测试程序 实现功能 C++实现代码 实现功能 boost::spirit模块实现将由某个分隔符分隔的任意键/ ...
- java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序
在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...
- map std 浮点数索引_C std :: map持有任何类型的值
Blindy的答案非常好(1),但只是为了完成答案:通过使用动态继承,还有另一种方法可以在没有库的情况下完成: class MyFieldInterface { int m_Size; // of c ...
- 58同城秋招笔试题解答 --map模式按value进行排序
求字符串中字母重叠的次数并按要求输出(笔试题) 题目描述: 给定一个字符串,求出字母重叠出现的次数,最后按字典格式输出. 输入示例: aaabccbbbfffaddbaa 输出示例: a : 5 b ...
- c++ map iterator 获取key_前K个高频的元素衍生之Map的Value与Key排序
前言 本篇文章总结来自九月份的每日一题 347-前K个高频的元素 思考 对于系列的题目就是计算利用到Hash表的属性的Key与Value的双属性,能够满足我们后面计算对于每一个元素出现的频率的同时还能 ...
- python中字典按键或键值排序
字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...
最新文章
- 智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队
- C语言的 32个关键之和9个控制语言之关键字
- mongodb数据库磁盘碎片整理。
- Spring MVC POST中文乱码解决方案
- word经常用到的技巧
- matlab中uint16(uint8)函数的用法
- 湖北计算机技能高考专科学校排名,湖北2021年技能高考专科录取分数线
- ICPC2020小米网络选拔赛第一场复盘
- OPENCV C++ 找到最大内接矩形(正方形)
- 在ubuntu 上安装golang
- android 5.0播放swf flash源码Demo
- Android 一体机研发之修改系统设置————声音
- MTK led闪烁改为呼吸灯模式
- NOIP2013普及组 题解
- 网狐6603所有版本--新金典版本最新漏洞。
- Python—类私有化属性和方法
- k8s 的etcd备份、CoreDNS和dashboard安装,集群升级,yaml详解
- 基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar
- 中文文本情感分类实战(weibo_senti_100k为数据集)
- xp计算机上的共享文档说是拒绝访问,WinXP电脑中的文件或文件夹拒绝访问如何解决?...
热门文章
- 通过CSS3 Media Query实现响应式Web设计
- python-day9-函数初识-三元运算符
- [HAOI2010]计数(组合数学)(数位DP)
- 多线程总结之旅(9):线程同步之事件
- iOS开发之--HTTP请求
- Labview实现脉波调制( PDM )
- sql2008 表名为全数字时查询报错
- linux pdf 合并 脚本,在Linux中使用脚本结合多个pdf文件?
- linux 6.5 mongdb php扩展插件,linux下为php添加mongodb扩展
- python中out函数_cython函数输出与python函数outpu略有不同