首页
软件
文章
留言
关于
【C++】sort函数排序用法-文章-xcdmr

【C++】sort函数排序用法

 [标签]  C++  函数
 2025-11-13
sort函数排序用法 用来给数组排序,速度快,较稳定,支持结构体数组排序。 头文件: ``` #include<algorithm> ``` sort(A,B,C) A:数组(不用加[],如果不从第0位开始排序,第几位就+几,不能省略) B:数组+n(不用加[](多为数组加要排序的数组下标,省略最后一个),排序到第几位就+几,不能省略) C:排序方式(可省略,结构体数组排序时必须,默认是从小到大,需要一个bool函数返回值) 排序方式: ``` bool cmp(int a,int b){ return a>b;(从大到小排,a<b从小到大排) } ``` 例子: ``` //从小到大 #include<iostream> #include<algorithm> using namespace std; int main(){ int k[5]={2,4,1,3,5}; sort(k,k+5); for(int i=0;i<5;i++){ cout << k[i] << " "; } } //结果:1 2 3 4 5 //从大到下 #include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b); bool cmp(int a,int b){ return a>b; } int main(){ int k[5]={2,4,1,3,5}; sort(k,k+5,cmp); for(int i=0;i<5;i++){ cout << k[i] << " "; } } //结果:5 4 3 2 1 ``` 结构体数组排序: 当一个结构体中变量改变位置,其他的变量也会一起移动。 结构体排序的bool函数: bool cmp(结构体定义名称 n,结构体定义名称 m){ return n.要排序的结构体变量>m.要排序的结构体变量;(从大到小排,"<"从小到大排) } sort的A和B都不用加后缀 例子: ``` //从小到大 #include<iostream> #include<algorithm> using namespace std; struct jgt{ int id,age; }; bool cmp(jgt a,jgt b); bool cmp(jgt a,jgt b){ return a.age<b.age; } int main(){ int n; cin >> n; jgt k[n]; for(int i=0;i<n;i++){ cin >> k[i].age; k[i].id=i+1; } sort(k,k+n,cmp); for(int i=0;i<n;i++){ cout << k[i].id << " " << k[i].age << endl; } } /* 输入: 6 15 46 37 41 25 37 输出: 1 15 5 25 3 37 6 37 4 41 2 46 */ ``` ​

评论

©bci9 版权所有

联系站长 web@bci9.cn

本站公众号