C++ algorithm sort自定义排序

来源:互联网 发布:aspen plus软件参数 编辑:程序博客网 时间:2024/06/07 14:18

sort定义在#include <algorithm>中是不稳定的排序

默认情况下

sort(a,a+n)代表从a首地址到a的尾地址按默认的从小到大排序


自定义

1)简单变量

bool  compare(类型名称 a,类型名称 b){return a>b;}

bool compare(const int &odd1,const int &odd2){return odd1>odd2;}

按从大到小排序

sort(v.begin(),v.end(),compare);

2)简单结构体

struct stu  {      int num;      float grade;  }; 

bool compare(const stu* st1,const stu* st2)  {      return st1->grade>st2->grade;  }  
按照结构体重grade值从大到小排序
sort(v.begin(),v.end(),compare); 

3)多条件

struct  stu{std::string name;int grade;};//const表示引用变量不会在函数中被改变bool compare(const stu& st1,const stu& st2){if(st1.grade>st2.grade)return 1;else if(st1.grade==st2.grade&&st1.name<st2.name)return 1;elsereturn 0;}

按照结构体变量中的grade值从大到小排序,如果有grade值相同,按照name值字典序小的在前

参考:http://www.cnblogs.com/Leonard-/p/6545673.html

原创粉丝点击