【信奥基础】C++模板程序 结构体数组排序

开饭前先友情提示,C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)

一.sort函数排序

当然,我们先要定义一个结构体哈

struct test{
    int a;
    int b;
    int c;
};

第一部分:cmp函数,负责确定结构体排序的对象和方式   //cmp为布尔型函数,只返回真假值

bool cmp(test a,test b){   //判断2个具体的结构体元素
    return a.b>b.b;        //比较a.b是否大于b.b
}

第二部分:sort排序

比较与普通数组来说,结构体数组排序的sort语法要多一项

普通:

sort(a,a+n);  //a:数组名,a+n:数组长度

结构体数组:

sort(a,a+n,cmp);

注意:结构体数组排序,是把每个结构体单位一起排序,而非单个元素(讲多了看起来费神,直接上图片吧)

排序前:

 排序后:

 (~我想应该时够直接了吧~)

二.自定义冒泡排序

for(int i=n;i>0;i++){
    for(int j=1;j<=i;j++){
        if(表达式){
            swap(a[i],a[i-1]);
        }
    }
}

重要的事情说三遍:

C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)

C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)

C++中的string、char *等字符串的输入千万不要用scanf("%s或%c");会丢数据哒!!!)一定要用 cin 来输入。(不然就坐等WA吧~~~)

——THE END——

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值