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

本文详细介绍了C++标准库中的sort函数使用方法,包括如何进行数组排序以及如何实现结构体数组的自定义排序。示例代码展示了从小到大和从大到小排序的实现,并给出了结构体数组排序的bool比较函数。通过实例,读者可以理解sort函数在不同场景下的应用。
摘要由CSDN通过智能技术生成

个人博客地址:http://bci9.cn/w/?w=1002

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
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值