c++ STL中sort函数
c++ STL中sort函数是一个快速排序函数可以对任何类型的数据进行排序。
STL,C++中的标准模板库, 使用起来方便并且效率较高;
#include<algorithm>//用sort要包含这个头文件
一:对基本类型数组从小到大排序
sort( 数组名+n1,数组名+n2);
将数组中下标从n1到n2的元素进行从小到大排序,不包括n2,通过n1,n2 可以对整个或者部分数组排序;
二:对元素类型为T的基本类型数组从大到小排序
sort( 数组名+n1,数组名+n2,greater<T>());
T对应各种元素类型
同样,将数组中下标从n1到n2的元素进行从大到小排序,不包括n2,通过n1,n2 可以对整个或者部分数组排序;
三:第三种自定义排序规则
1排序规则结构体定义:
1 2 3 4 5 6 | sort(数组名+n1,数组名+n2,排序规则结构名); struct 结构名{ bool operator ()( const T &a1, const T &a2){ return ; } }; |
返回值为true说明a1应该排在a2前面,false则相反,T对应元素类型
举个例子:
排序规则为按个位数从小到大排序:
1 2 3 4 5 6 | struct Rule1{ bool operator ()( const int &a1, const int &a2){ return (a1%10)<(a2%10); } }; 调用时sort(a,a+ sizeof (a)/ sizeof ( int ),Rule1()); |
sort还可以对结构体进行排序。
在结构体中重载<运算符
练习
P1177 【模板】快速排序
P7072直播获奖
P1223 排队接水
P1628 合并序列
P1296 奶牛的耳语
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报