当前位置: 首页 > news >正文

sort自定义排序函数tips【C++】

1、读txt文件

#include<fstream>

fstream file("log.txt");//读入文件流

2、sort自定义排序

#include <algorithm>

sort(first,last,cmp);//分别代表起点、终点、排序方式!!!

[first,last)(一定要注意这里的区间是左闭又开)区间内数据根据cmp的方式进行排序。也可以不写第三个参数,此时按默认排序,从小到大进行排序。

2.1 sort自定义排序

bool  cmp(int a,int b){return b<a;
}sort(a,a+n,cmp);

2.2重载比较运算符“<”

面向结构体、类、需要重载运算符

bool operator< (const Student& s1, const Student& s2){if(s1.age==s2.age)return s1.name <s2.name;//年龄相同时,按姓名小到大排else  return s1.age > s2.age; //从年龄大到小排序
}sort(a,a+n);

排序类例题:

解题思路:重定义排序函数+打表定义封闭图形大小

#include <iostream>
#include <algorithm>
using namespace std;
int n, a[200001];
int num[10]{1, 0, 0, 0, 1, 0, 1, 0, 2, 1};//表
int sum(int x)//拆位计算
{int ans = 0;while (x){ans += num[x % 10];x /= 10;}return ans;
}
bool cmp (int a, int b)//cmp 自定义判断
{int na = sum(a), nb = sum(b);if (na != nb) return na < nb;return a < b;
}
int main()
{cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];sort(a + 1, a + n + 1, cmp);for (int i = 1; i <= n; i++) cout << a[i] << ' ';return 0;
}

相关文章:

  • 维普期刊(瑞数6)分析
  • Android开发中广播(Broadcast)技术详解
  • rag搭建,是如何进行向量匹配检索的?
  • Transfomer的本质
  • 【Android】Wallpaper学习
  • 博客系统案例练习2-用户注册-redis
  • 数据库知识
  • 电解电容失效分析过程、失效分析报告
  • 450.删除二叉搜索树中的节点
  • 【Vulkan 入门系列】创建交换链、图像视图和渲染通道(四)
  • 【2025面试常问Java八股】AQS介绍(AbstractQueuedSynchronizer 抽象队列同步器)
  • PyCharm使用Anaconda 中的虚拟环境
  • PowerBi如何制作KPI的总览页?
  • 关于AI:记忆、身份和锁死
  • Function calling LLMs 的 MCP:AI开发的双剑合璧
  • [OpenGL]使用OpenGL实现基于物理的渲染模型PBR(下)
  • 大数据应用开发——大数据平台集群部署(四)
  • 【KWDB 创作者计划】_上位机知识篇---Arduino
  • 什么是 C++中的const?
  • SpringBoot Actuator指标收集:Micrometer与Prometheus集成
  • 扫描类软件成泄密“推手”,网盘账号密码遭暴力破解
  • 云南昭通一公园发现毒饵,多只宠物狗疑中毒致死
  • 大理杨徐邱再审后上诉案将于下周开庭:案发已逾32年,故意杀人罪去年被撤销
  • 解除近70家煤电厂有毒物质排放限制,特朗普能重振煤炭吗?
  • 鲁比奥称“美或退出俄乌谈判”,欧洲官员:为了施压乌克兰
  • 美国防部宣布整合驻叙美军部队,将减少至不足千人