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

C++ sort()排序详解

头文件

在C++中使用sort()函数需要使用#include<algorithm>

sort()基本使用方法

sort()函数可以对给定区间所有元素进行排序。它有三个参数sort(begin, end, cmp)

其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,cmp参数可以不写,如果不写的话,默认从小到大进行排序

如果我们想从大到小排序可以将cmp参数写为greater<int>()就是对int数组进行排序,当然<>中我们也可以写double、long、float等等

#include<iostream>
#include<algorithm>
using namespace std;int main(){int num[10] = {6,5,9,1,2,8,7,3,4,0};sort(num,num+10,greater<int>());for(int i=0;i<10;i++){cout<<num[i]<<" ";}//输出结果:9 8 7 6 5 4 3 2 1 0return 0;} 

自定义排序准则

上面我们说到sort()函数可以自定义排序准则,以便满足不同的排序情况。使用sort()我们不仅仅可以从大到小排或者从小到大排,还可以按照一定的准则进行排序。

比如说我们按照每个数的个位进行从大到小排序,我们就可以根据自己的需求来写一个函数作为排序的准则传入到sort()中。

我们可以将这个函数定义为:

bool cmp(int x,int y){return x % 10 > y % 10;
}

然后我们将这个cmp函数作为参数传入sort()中即可实现了上述排序需求。

#include<iostream>
#include<algorithm>
using namespace std;bool cmp(int x,int y){return x % 10 > y % 10;
}int main(){int num[10] = {65,59,96,13,21,80,72,33,44,99};sort(num,num+10,cmp);for(int i=0;i<10;i++){cout<<num[i]<<" ";}//输出结果:59 99 96 65 44 13 33 72 21 80return 0;} 

http://www.lryc.cn/news/345667.html

相关文章:

  • 移动机器人系统与技术:自动驾驶、移动机器人、旋翼无人机
  • zTasker v1.88.1一键定时自动化任务
  • 时序医疗数据集---adfecgdb
  • ruoyi-vue-pro 使用记录(4)
  • 【17-Ⅱ】Head First Java 学习笔记
  • 订单超时自动取消的实践方案
  • 【gin框架入门】
  • dev c++调试录入数字后回车直接关闭
  • java期末复习
  • 让新手变中手的ChatGPT 使用方法
  • 桥接模式类图与代码
  • Oracle count的优化-避免全表扫描
  • leetcode17. 电话号码的字母组合
  • 如何设计与管理一个前端项目
  • 【MQTT】mosquitto 的 “下载、交叉编译、使用” 详细教程,手把手搭建一个MQTT Broker
  • 用云手机打造海外社媒矩阵
  • 第 8 章 机器人平台设计之底盘实现(自学二刷笔记)
  • ✔ ★Java项目——设计一个消息队列(五)【虚拟主机设计】
  • ntfs文件系统的优势 NTFS文件系统的特性有哪些 ntfs和fat32有什么区别 苹果电脑怎么管理硬盘
  • Python Web框架Django项目开发实战:创建在线学习应用
  • 用得助全媒体呼叫中心,让AI落到实处帮品牌做营销
  • 【吃透Java手写】2-Spring(下)-AOP-事务及传播原理
  • Spring原理分析--获取Environment资源对象
  • Android GPU渲染SurfaceFlinger合成RenderThread的dequeueBuffer/queueBuffer与fence机制(2)
  • 人民币数字和中文汉字转换
  • 07_Flutter使用NestedScrollView+TabBarView滚动位置共享问题修复
  • Java解决垂直鉴权问题(对垂直权限进行校验)
  • 【MySQL工具】pt-heartbeat
  • 实现vant的年月日时分秒组件
  • typescript 命名空间、装饰器