C++ sort函数用法

个人简单记录一下sort函数的用法,方便下次直接使用

  1. sort包含在头文件<algorithm>中,用于对数组进行排序
  2. sort可以有三个参数,sort(begin,end,cmp),第三个参数可以自己定义排序的规则,从而可以对二维数组进行排序等。
  3. 基本用法
    数组定义:
    vector<int>nums;
  • 默认:sort(nums.begin(),nums.end());
    对nums数组进行升序排序
  • 自定义以进行降序排序
bool cmp(int x, int y) {
    return x > y;
}
sort(nums.begin(),nums.end(),cmp);
  • 对二维数组自定义规则排序
    二维数组:vector<vector<int>>nums;
    例:按照每个子数组中第一个数递减,第二个递增排序
#include <iostream>
#include <algorithm>
#include<vector>
using namespace std;
//核心代码
bool cmp(vector<int>x, vector<int>y){
	return x[0]>y[0]||x[0]==y[0]&&x[1]<y[1];
}
void show(vector<int>v){
    cout<<v[0]<<" "<<v[1]<<endl;
}
int main() {
    vector<vector<int>>nums={{1,5},{10,4},{4,6}};
    sort(nums.begin(),nums.end(),cmp);
    for_each(nums.begin(),nums.end(),show);
    system("pause");
    return 0;
}

运行结果如下:
如图
*第三个参数也可不在外部额外定义排序规则,可以直接写在括号里,例如

sort(nums.begin(),nums.end(),[&](int x,int y){return x>y});
//或者
sort(nums.begin(),nums.end(),[&](auto& x, auto& y){return x[0]>y[0] || x[0]==y[0] && x[1]<y[1];});
  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值