C++ sort 降序排序的简便写法 - greater、lambda

本文总结了C++调用sort函数实现降序排序的简便写法,可以在日常算法题目中使用以节省时间,主要写法如下:

  1. 使用greater,使用场景为在对基本类型元素进行排序、不需要自定义比较规则时,如int、string等,用法示例如下:
	// 测试数据
	// vector<int> v1({2,3,1,5,2,7});
	// vector<string> v2({"abc", "ab", "bc", "bcd"});
	
	sort(v1.begin(), v1.end(), greater<int>());
	sort(v2.begin(), v2.end(), greater<string>());
	
	// 打印输出
	// cout<<"vector<int>: [";
	// for(int i=0; i<v1.size(); i++){
	//	 cout<<v1[i]<<",";
	// }
	// cout<<"]\n";
	// cout<<"vector<string>: [";
	// for(int i=0; i<v2.size(); i++){
	//	 cout<<v2[i]<<",";
	// }
	// cout<<"]\n";

控制台输出结果为:
在这里插入图片描述

  1. 使用lambda匿名函数,使用场景为对自定义类型或其他复杂类型进行排序、需要自定义比较规则时,如pair、自定义类等,用法示例如下:
	// 测试数据
	// vector<pair<int,int> > v3({
	//   pair<int,int>(1,3),
	//   pair<int,int>(2,4),
	//   pair<int,int>(5,4),
	//   pair<int,int>(7,0)
	// });
	
	sort(v3.begin(), v3.end(), [](pair<int,int> a, pair<int,int> b)->bool{
		return a.second>b.second;
	});

	// 打印输出
	// cout<<"vector<pair<int,int>>: [";
	// for(int i=0; i<v2.size(); i++){
	// 	 cout<<"("<<v3[i].first<<","<<v3[i].second<<"),";
	// }
	// cout<<"]\n";

控制台输出结果为:
在这里插入图片描述

补充,lambda匿名函数的常用写法(更详细的写法可参照文章C++11 lambda匿名函数用法详解)如下:

[外部变量访问方式说明符] (参数) () -> 返回值类型{
	   函数体;
};
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值