sort自定义排序实现

1、sort是#include标准库中的函数,sort函数有三个参数,按顺序为:
(1)、数组的起始地址;
(2)、数组的结束地址;
(3)、排序方法;
sort(start, end, complare);
使用时,sort(start, end);complare默认从小到大。
2、实现自定义排序:
eg:

    struct stu{
      int id;
      string name;
      int Chinese;
      int Math;``
      int English;
    };

实现按语文成绩大到小排序,如果语文成绩一样则按数学成绩大到小排序,如果数学成绩也一样则按英语成绩大到小排序,如果语数英成绩都一样则按id从小到大排序。
假设当前有一个存放学生数据的数组vector studentsVec,实现如下:

  sort(studentsVec.begin(), students.end(), ([](const stu& A, const stu& B)-> bool <br/>
  {
    if(A.Chinese == B.Chinese)
    {
      if(A.Math == B.Math)
      {
        if(A.English == B.English)
        {
           return A.id < B.id;
        }
        else
        {
           return A.Englisg > B.English;
        }
      }
      else
      {
        return A.Math > B.Math;
      }
    }
    else
    {
      return A.Chinese > B.Chinese;
    }
  }
  ));
posted @ 2021-04-19 15:23  天真王二小  阅读(534)  评论(0编辑  收藏  举报