stl中sort详细说明

实现功能:期末开始4位同学的成绩,按多级排序,排序规则为:按数学从小到大,如果数学相等,则按语文从大到小排列,如果语文相等,则按英语从小到大排列,如果英语相等,则按历史从大到小排烈

 #include "stdafx.h"

 #include

 #include

 #include

 typedef struct stu

 {

     char name[];

     int math;//数学

     int chinese;//语文

     int english;//英语

     int history;//历史

 }Student;

 //按照你想排序的方法排序

 bool cmp(stu l, stu r)

 {

     if (l.math < r.math)//数学从小到大

     {

         return true;

     }

     else if (l.math == r.math)//如果数学相等

     {

         if (l.chinese > r.chinese)//按语文从大到小

         {

             return true;

         }

         else if (l.chinese == r.chinese)//如果语文相等

         {

             if (l.english < r.english)//按英语从小到大

             {

                 return true;

             }

             else if (l.english == r.chinese)//如果英语相等

             {

                 if (l.history > r.history)//按历史从大到小

                 {

                     return true;

                 }

                 else if (l.history == r.history)

                 {

                     return false;

                 }

             }

         }

     }

     return false;

 }

 using namespace std;

 //  小明 73, 80, 86, 79

 //小花 77, 78, 60, 90

 //  小刚 73, 79, 90, 90

 //  小白 77, 78, 40, 89

 //排序后

 //  小明 73, 80, 86, 79

 //  小刚 73, 79, 90, 90

 //  小白 77, 78, 40, 89

 //小花 77, 78, 60, 90

 Student students[] = { { "小明", , , ,  }

 , { "小花", , , ,  }

 , { "小刚", , , ,  }

 , { "小白", , , ,  } };

 int _tmain(int argc, _TCHAR* argv[])

 {

     cout << "排序前:===========================================" << endl;

     for (Student s : students)

     {

         cout << s.name << ""

             << s.math << ""

             << s.chinese << ""

             << s.english << ""

             << s.history << endl;

     }

     sort(students, students + , cmp);

     cout << "排序后:===========================================" << endl;

     for (Student s : students)

     {

         cout << s.name << ""

             << s.math << ""

             << s.chinese << ""

             << s.english << ""

             << s.history << endl;

     }

     getchar();

     return ;

 }

效果如:

如果您觉得文章不错,不妨给个打赏,写作不易,感谢各位的支持。您的支持是我最大的动力,谢谢!!! 

 

很重要--转载声明

  1. 本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者:朝十晚八 or Twowords
  2. 如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。

多级排序

C++实现多级排序的更多相关文章

  1. python自学笔记(七)排序与多级排序

    一.sorted内置方法 a = [1,2,3,4] 从大到小(翻转) a = sorted(a,reverse = True) #生成新对象,不会原地修改,需要重新赋值 print a --> ...

  2. Python中使用operator模块实现对象的多级排序

    Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...

  3. python list 嵌套 dict 按照字典中的单个key进行单级排序 或 按照多个键进行多级排序

    student = [{"no": 1,"score": 90},{"no": 2,"score": 90},{&quo ...

  4. 用 Python 排序数据的多种方法

    用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭 ...

  5. Python的列表排序

    Python的列表排序 本文为转载,源地址为:http://blog.csdn.net/horin153/article/details/7076321 在 Python 中, 当需要对一个 list ...

  6. python几个排序函数 sort sorted argsort

    Python中排序常用到的sort .sorted和argsort函数 [摘要:Python中sort 战 sorted函数 一 .先容 sort函数是list列表中的函数,而 sorted能够对li ...

  7. ElasticSearch(7)-排序

    引用自ElaticSearch权威指南 一.排序 相关性排序 默认情况下,结果集会按照相关性进行排序 -- 相关性越高,排名越靠前. 这一章我们会讲述相关性是什么以及它是如何计算的. 在此之前,我们先 ...

  8. mysql常用基础操作语法(六)--对数据排序和限制结果数量的条件查询【命令行模式】

    1.使用order by对查询的结果进行排序,asc升序,desc降序: 也可以在order by后指定多个字段名和排序方式进行多级排序: 2.使用limit限制查询结果的数量: 上图中的0,代表查询 ...

  9. .Net中集合排序还可以这么玩

    背景: public class StockQuantity { public StockQuantity(string status, DateTime dateTime, int quantity ...

随机推荐

  1. 在vue-cli3中优雅的使用 icon

    首先我们得有图标 这里我们从网上下载svg文件或者UI给你导出svg文件 我们在src 文件下新建一个放置svg 文件 的文件夹 @/src/icons.将所有 icon 放在这个文件夹下. 创建 i ...

  2. 接口管理工具——阿里RAP

    1.阿里官网RAP a.进入官网 http://rapapi.org/org/index.do b.项目创建:创建 团队 —— 创建 产品线 —— 创建 分组 —— 创建 项目 c.然后就可以创建 页 ...

  3. Linux-硬件

    1.服务器 计算节点服务器-用于后台逻辑运算,所以cpu,磁盘读写性能要求较高 web服务器-用于用户请求访问一些页面,如果高并发,磁盘读写性能要好,可以使用raid0或raid1或raid5技术(r ...

  4. 【C语言编程练习】新娘与新郎

    1. 题目要求 新郎A,B,C与新娘 X,Y,Z.有人不知道她们谁和谁结婚了,询问了6位新人中的三位,A说他将和X结婚,X说她的未婚夫是C,C说她会和Z结婚,一听就知道是全是假话,请编程找出谁和谁结婚 ...

  5. 黑洞版视频裂变程序【接口版】全新上线,全新UI,支持分享数据统计

    黑洞版视频裂变程序[接口版]全新上线,全新UI,支持分享数据统计!   后台效果   程序统一售价:1899/套(包安装,包更新) 注:本程序不属于之前视频程序的更新版,展现形式和广告位设置均不同,是 ...

  6. 2018-2019-2 网络对抗技术 20162329 Exp2 后门原理与实践

    目录 1.实践基础 1.1.什么是后门 1.2.基础问题 2.实践内容 2.1.使用netcat获取主机操作Shell,cron启动 2.2.使用socat获取主机操作Shell, 任务计划启动 2. ...

  7. TCP 三次握手、四次挥手

    三次握手:(主要是server.client相互同步系列号) SYN:同步序列号 ACK:确认序列号 第一次握手:client 向server 发送SYN,seq=x,申请同步client端序列号,c ...

  8. APM飞控学习之路的资料

    飞控学习之路的资料 https://blog.csdn.net/u010682510 博客资料 https://blog.csdn.net/qq_26573899/article/category/7 ...

  9. Linux 查询服务数据

    1.  htop 可以时时查看 2. free -m 查看缓存

  10. 微信公众平台测试号 “微信登录失败,redirect_uri域名与后台配置不一致,错误代码10003”

    设置"网页授权获取用户基本信息" 点击"修改" 弹出"OAuth2.0网页授权",注意域名不加"https://"或&q ...