sort函数使用方法包含自定义函数

sort函数简单的介绍

目录

sort函数简单的介绍

关于自定义函数

将奇数和偶数分开


         首先sort函数的头文件是#include<algorithm>

        sort函数我认为可以分成三段,结构是sort(开始位置,结束位置,自定义函数),排序范围是左闭右开,使用的是地址。最后一个自定义函数可以不用写,默认是从小到大。

例如:


#include<algorithm>

#include<algorithm>

using namespace std;

int main(){
    int a[10]={0,5,6,9,8,4,3,1,2,7};
    sort(a,a+10);
    for(int i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }
    return 0;
}

        上面的代码是简单的使用sort,先是定义一个数组,然后使用sort, 因为数组一共有10个数字,所以开始位置是a,结束位置是a+10,然后我并没有写排序的顺序,所以就是默认的从小到大。

结果为

关于自定义函数

        我们可以选着写成一个函数,也可由用lambda函数(也就是将代码内嵌)。

        自定义函数要注意返回值应当是一个布尔型的。

        我写这篇文章的主要原因是在做力扣时看到lambda函数不会,所以特此写下这篇文章用来帮助记忆。

例如

#include <iostream>

#include<algorithm>

using namespace std;


bool cmd(int i,int j){
    return i>j;
}
int main(){
    int a[10]={0,5,6,9,8,4,3,1,2,7};
    sort(a,a+10,cmd);
    for(int i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }
    return 0;
}

        首先与之前一样,首先定义一个新的数组,然后sort排序,从a到a+10,但是后面加了一个函数名,所以排序顺序是我规定的方式,i>j,相当于就是前一个大于后一个,所以是从大到小的排列顺序。 

结果为

#include <iostream>

#include<algorithm>

using namespace std;

int main(){
    int a[10]={0,5,6,9,8,4,3,1,2,7};
    sort(a,a+10,[](int i,int j){return i>j;});
    for(int i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }
    return 0;
}

        首先定义一个数组,然后就是范围是a到a+10,然后就是lambda函数,其实写法与正常函数写法一致,但是没有命名,[]内也可以加入一些东西,比如你可以在外面的主函数内声明一个数,例如b,然后可以分为[b]和[&b],前者只可以引用,无法修改,后者可以修改b的值,并且外面的b也会被一同修改。

结果为

 

将奇数和偶数分开

#include <iostream>

#include<algorithm>

using namespace std;

int main(){
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    sort(a,a+10,[](int i,int j){
         if(i%2==0&&j%2==1)//假如前面是偶数,后面是奇数就把偶数放前面
            return true;
         return false;
         });
    for(int i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }

    return 0;
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值