sort入门

本文介绍了C++中sort函数的使用,包括默认升序排序及自定义排序规则。通过示例展示了如何对数组和结构体进行排序,并提供了结构体排序的两种方法:使用cmp函数和重载运算符。此外,还讨论了结构体在优先队列中的排序行为。
摘要由CSDN通过智能技术生成

利用sort排序数组a 

1. sort默认由小到大排序 

    sort(a+1,a+n+1); //对数组 1~n 之间进行排序
    sort(a,a+n);     //对数组 0~n-1 之间进行排序

2. sort自定义排序方式
 

    sort(a+1,a+n+1,cmp);
    bool cmp(int x,int y)  //由大到小排序 
    {
        return x>y;
        //if(x>=y) return 1;  现有x和y位置不变 
        //if(x<y)  return 0;  交换x和y的位置 
    }

结构体排序

当我们使用sort对结构体进行排序时,我们要首先自己编写一个排序函数,在排序函数中,规定好排序的优先顺序;

1.cmp

struct Num
{
	int x,y;
};
bool cmp(Num a,Num b) //a b均为结构体类型
{
	if(a.x!=b.x){return a.x>b.x;}//第一优先级:按照x从大到小排序;
	else  //当a和b相同时,使用第二优先级排序;
	{return a.y>b.y;}//第二优先级,按照y从大到小排序;
}

        然后就可以用sort(a+1,a+n+1,cmp)来排序了

2.重载运算符

struct node
{
	int w;
	bool operator <(const node a)const //记住!!!
	{
		return w<a.w;                //按照w从小到大
//		return w>a.w;                  按照w从大到小 
	}
}e[maxn];
priority_queue<node> q; //此时的优先队列是按结构体的w值,从大到小排列
sort(e,e+n);//按照结构体的w值,从小到大进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值