C++ sort()排序

37 篇文章 1 订阅
17 篇文章 0 订阅

C++中的sort()函数:

sort()函数在头文件algorithm中,也可使用万能头文件bits/stdc++.h

sort()可对普通数组和vector动态数组排序

sort()对普通数组排序:

int arr[10];//double, string等等都可以sort(arr,arr+10);//从小到大排序

arr: 数组地址 arr+10: 数组尾部
注意:数组长度是10,所以要+10,不是9
同理,从第二个元素排到第五个元素就是sort(arr+1,arr+5),
2-5 1-5 5-1=4
9 8 7 6 5 4 3 2 1 0 ——> 9 5 6 7 8 4 3 2 1 0 自己慢慢体会

sort()对vector动态数组排序:

vector<int>v;// double, string等等都可以sort(v.begin(),v.end());//从小到大排序

C++中使用sort()自定义cmp函数:

sort()排序默认是从小到大的,如果想从大到小排怎么办呢?
或者想给结构体数组排序,按照几个不同优先级的关键字进行排序呢?

int cmp(int a,int b)
{
	return a>b;//从大到小排序,a<b就是从小到大排序,注意是大于小于,不带等于
}

int main()
{
	int arr[10];//double, string等等都可以sort(arr,arr+10,cmp);//从小到大排序
}

第二种方法:sort(arr,arr+10,greater<int>());//从大到小排序

对结构体排序:

struct s{
	int id;
	int score;
};

按score从大到小排序,score相同时按id从小到大排序

int cmp(s a,s b)
{
	if(a.score==b.score)
	{
		return a.id<b.id;
	}
	return a.score>b.score;
} 

int main()
{
	s stu[10];sort(stu,stu+10,cmp);
}

注意:对字符数组 char [ ] 排序要用return strcmp(s1,s2)<0或>0

典型例题:

20200217训练赛题目 L1 – 2 部分排序,L2 – 2 模拟EXCEL排序

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柳学渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值