首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >浅谈C++的sort函数用法

浅谈C++的sort函数用法

作者头像
叶茂林
发布2023-07-28 21:29:35
发布2023-07-28 21:29:35
45400
代码可运行
举报
运行总次数:0
代码可运行

sort简介

头文件为algorithm,其排序方式类似于快速排序,比冒泡选择之类的小杂鱼高级。

函数调用形式为:

sort(参数a,参数b,参数c);

参数a是待排序数组的起始位置,参数b是待排序数组的末位置,参数c是一个函数,决定排序的规则,不写默认从小到大排序。

对于这么一个待排序的数组a:

代码语言:javascript
代码运行次数:0
运行
复制
int a[6]={1,3,6,2,4,5};

我们有三种方式排序。

一、默认排序

直接用sort,就是从小到大排序。

代码语言:javascript
代码运行次数:0
运行
复制
sort(a,a+6);

二、参数排序

写入第三个参数。

从小到大排序:

代码语言:javascript
代码运行次数:0
运行
复制
sort(a,a+6,less<int>());

从大到小排序:

代码语言:javascript
代码运行次数:0
运行
复制
sort(a,a+6,greater<int>());

三、自定义排序规则

由于sort函数的第三个参数是以函数形式的方式传入,所以,可以自己写函数,定义排序规则。

从大到小排序:

代码语言:javascript
代码运行次数:0
运行
复制
bool just_a_name(int a,int b)
{
	return a>b;
}
sort(a,a+6,just_a_name);

这个功能非常好用,记得总有OJ题目经常要排序学生成绩,科目多,人数也多,要排序结构体数组,登峰造极的是PTA的德才论德才论+坑详解_心 灵 骇 客的博客-CSDN博客

我记得第一次写了两百多行的代码,用的是冒泡排序,死活过不了,后来今天用了sort函数去写,只用了六十多行代码就搞定了。

其中排序结构体数组的sort排序规则函数代码:

代码语言:javascript
代码运行次数:0
运行
复制
bool compare(score a,score b)
{
	if(a.sum!=b.sum)
	return a.sum>b.sum;
	if(a.de!=b.de)
	return a.de>b.de;
	return a.id<b.id;	
}
sort(a,a+i,compare);

四、排序字符数组

代码语言:javascript
代码运行次数:0
运行
复制
char a[6]="asdfg";

从小到大排序: 

代码语言:javascript
代码运行次数:0
运行
复制
sort(a,a+5,less<char>());

从大到小排序: 

代码语言:javascript
代码运行次数:0
运行
复制
sort(a,a+5,greater<char>());
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sort简介
    • 一、默认排序
    • 二、参数排序
    • 三、自定义排序规则
    • 四、排序字符数组
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档