【C++】map值自定义key,value排序(含ccfcsp第四次认证第二题演示和map遍历方法)

news2024/12/24 3:03:24

如何自定义map排序

sort仅仅支持pair,vector,数组等排序,不支持对map的排序

所以如果想用sort对map排序的话,只需要把map转换为vector即可:

map<int,int>res;
res[1]=1,res[2]=2,res[3]=3;
vector<pair<int,int>>rest;
for(auto it=res.begin();it!=res.end();it++)
rest.push_back((pair<int,int>(it->first,it->second)));

再输出vector,即可得到我们想要的结果

如果想要在map遍历的时候,可以直接输出排序的结果,大不了把原来的map删掉,再把vector的内容重新赋值进去就行了

附上map遍历的方法

(string的data方法可以返回指向该字符串的第一个字符的字符型指针)

    map<string, int>::iterator it;
    for (it = m2.begin(); it != m2.end(); it++) {
        string s = it->first;
        printf("%s %d\n", s.data(), it->second);
    }
for(auto it : map1){
	cout << it.first <<" "<< it.second <<endl;
}

csp第四次第二题--数字排序

题解如下,思考map的使用技巧

#include<map>
#include<iostream>
#include<utility>
#include<vector>
#include<algorithm>
using namespace std;
int n;
map<int,int>res;
bool cmp(pair<int,int>a,pair<int,int>b)
{
	if(a.second!=b.second)return a.second>b.second;
	else
	return a.first<b.first;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x;
		cin>>x;
		if(!res.count(x))res[x]=1;
		else res[x]++;
	}
	vector<pair<int,int>>rest;
	for(auto it=res.begin();it!=res.end();it++)
	rest.push_back((pair<int,int>(it->first,it->second)));
	sort(rest.begin(),rest.end(),cmp);
	for(int i=0;i<rest.size();i++)cout<<rest[i].first<<" "<<rest[i].second<<endl;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/995486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

laravel部署api项目遇到问题总结

laravel线上部署问题 一、Ubuntu远程Mysql 61“Connection refused”二、Ubuntu更新php8三、线上部署Permission denied3.1、部署完之后访问域名出现报错&#xff1a;3.2、The /bootstrap/cache directory must be present and writable. 四、图片访问404五、git部署线上文件 一…

如何在linux系统下快速上手调试器gdb

1.什么是调试器&#xff1f; 调试器是一种帮助开发人员查看和修复程序错误的工具 2.gdb的作用和特点&#xff1f; gdb的作用 帮助开发人员寻找错误&#xff0c;并且提供了一系列的功能和工具进行调试 gdb的特点 源代码级调试多平台支持强大的调试功能拓展性强 3.gdb的基…

项目(智慧教室)第四部分,页面交互功能,WebServer建立与使用,

一。页面构思 1.标题栏 大标题&#xff1a;智慧教室管理系统 小标题&#xff1a;灯光&#xff0c;报警&#xff0c;风扇&#xff0c;温度&#xff0c;湿度&#xff0c;光照 2.样式设计 背景设置。字体设置&#xff08;字体大小&#xff0c;格式&#xff0c;颜色&#xff09; 3.…

多线程与高并发——并发编程(6)

文章目录 六、并发集合1 ConcurrentHashMap1.1 存储结构1.2 存储操作1.2.1 put方法1.2.2 putVal方法-散列算法1.2.3 putVal方法-添加数据到数组&初始化数组1.2.4 putVal方法-添加数据到链表1.3 扩容操作1.3.1 treeifyBin方法触发扩容1.3.2 tryPresize方法-针对putAll的初始…

VMware17 下载以及 配置虚拟机 一条龙全教程

前言&#xff1a;在网络安全相关方面的学习时&#xff0c;我们难免要使用虚拟机来模拟实现网络攻击或者防御&#xff0c;在这里&#xff0c;笔者就给大家分享 VMware 17 虚拟机下载安装使用的保姆级教程 目录 虚拟性软件版本推荐 下载 VMware 下载镜像 配置虚拟机 虚拟性软…

系统软件启动过程

实验一&#xff1a;系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm&#xff08;修改了名字&#xff0c;以便于彩色显示&#xff09;a. 开启A20 16位地址线 实现 20位地址访问 芯片版本兼容通过写 键盘控制器8042 的 64h端口 与 60h端口。b.…

数学的魅力

数学的魅力 数学的历史古代数学古希腊数学中世纪数学文艺复兴数学 数学的分支1. 代数学2. 几何学3. 微积分学4. 概率论与统计学5. 数论 数学的重要性1. 科学和技术2. 经济学和金融3. 医学和生物学4. 社会科学5. 环境科学 数学的未来1. 人工智能2. 网络安全3. 空间探索 结论 数学…

Spring与Docker:如何容器化你的Spring应用

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

BI技巧丨Window应用之移动平均

Window函数白茶之前介绍过&#xff0c;可以用来处理同环比问题&#xff0c;因为其函数内部特性&#xff0c;我们还可以用其来处理移动平均问题。 先来看看本期的案例数据&#xff1a; 案例数据非常的简单&#xff0c;随机模拟一下销售挂蛋的情况即可。 将其导入到PowerBI中&…

YOLO目标检测——棉花病虫害数据集+已标注txt格式标签下载分享

实际项目应用&#xff1a;目标检测棉花病虫害数据集的应用场景涵盖了棉花病虫害的识别与监测、研究与防治策略制定、农业智能决策支持以及农业教育和培训等领域。这些应用场景可以帮助农业从业者更好地管理棉花病虫害&#xff0c;提高棉花产量和质量&#xff0c;推动农业的可持…

医院信息化、数字医学影像、DICOM、PACS源码

PACS系统适合卫生院、民营医院、二甲或以下公立医院的放射科、超声科使用。功能强大且简洁&#xff0c;性能优异&#xff0c;具备MPR&#xff08;三维重建&#xff09;、VR&#xff08;容积重建&#xff09;、胶片打印功能&#xff0c;能够快速部署。 PACS系统支持DR、CT、磁共…

SpringCloud-Config配置中心

接上文 SpringCloud-GetWay 路由网关 针对每个模块都要配置一个配置文件&#xff0c;例如当进行数据库修改时候&#xff0c;又有很多服务&#xff0c;则需要一个一个去修改。因此需要一种集中化的配置文件管理工具&#xff0c;集中得对配置文件进行配置。 1.部署配置中心服务…

PS基础-新建窗口工作区(保存合适自己的窗口布局)

保存自己的工作区 一&#xff0c;打开自己需要的窗口 2,打开的窗口拖拽到边&#xff0c;就可放置 3&#xff0c;保存自己习惯的工作区分布 下次打开时&#xff0c;点击保存时的图标就会看到自己命名的工作区

Shape Completion Enabled Robotic Grasping

摘要-这项工作提供了一个架构&#xff0c;使机器人能够通过形状完成抓取规划。形状完成是通过使用3D卷积神经网络(CNN)来完成的。该网络是在我们自己的新的开源数据集上训练的&#xff0c;该数据集包含了从不同视角捕获的超过44万个3D样本。运行时&#xff0c;从单个视角捕获的…

8.Xaml Border控件

1.运行图片 2.运行源码 <Grid Name="Grid1"><!--Border 里面只能有一个子元素--><!--BorderBrush="Red" 边框颜色-->

Nginx配置踩坑:一定注意location和proxy_pass的是否以“/”结尾

Nginx是开源、高性能、高可靠的Web和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热更新。性能是Nginx最重要的考量&#xff0c;其…

数据库的内连接和外连接的区别

内连接&#xff1a; 指连接结果仅包含符合连接条件的行&#xff0c;参与连接的两个表都应该符合连接条件。 1.等值连接 依据两个表中相同内容的字段进行连接 表TESTA,TESTB,TESTC&#xff0c;各有A, B两列。 内连接 内连接&#xff0c;即最常见的等值连接&#xff0c;例&…

机器学习实战-系列教程4:手撕线性回归3之多特征线性回归(项目实战、原理解读、源码解读)

&#x1f308;&#x1f308;&#x1f308;机器学习 实战系列 总目录 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 手撕线性回归1之线性回归类的实现 手撕线性回归2之单特征线性回归 手撕线性回归3之多特征线性回归 手撕线性回归4之非线性回归 8…

Vue中数据可视化关系图展示与关系图分析

Vue中数据可视化关系图展示与关系图分析 数据可视化是现代Web应用程序的重要组成部分之一&#xff0c;它可以帮助我们以图形的方式呈现和分析复杂的数据关系。Vue.js是一个流行的JavaScript框架&#xff0c;它提供了强大的工具来构建数据可视化应用。本文将介绍如何使用Vue.js…