c++11版本list中sort用lambda表达式

转载 2015年07月09日 15:47:44

//定义学生类
class Student
{
public:
string StuName; //姓名
string StuNum; //学号
string Sex; //性别
//成绩
float English; //英语
float SQL; //SQL
float Prob; //概率论
float Circuit; //电路
float CSharp; //C#
float Average; //平均成绩
};

list studList;


c++ 11,可以用lambda表达式
//用平均成绩排序
list.sort( -> bool

return a.Average > b.Average; 
});
//用c#成绩排序
list.sort( -> bool

return a.Average > b.Average; 
});

如果是c++11以下版本
1. 函数
bool compare_avaerage (const Student& first, const Student& second)
{
return a.Average > b.Average;
}
然后调用list.sort(compare_average);
2. Function class
class StudentSorter{
public:
operator() (const Student& s1, const Student& s2)
{
// get the field to sort by and make the comparison
return a.Average > b.Average;
}
}
然后你可以调用
StudentSorter sorter;
sort(list.begin(), list.end(), sorter);




C++11 sort, vector, lambda——vector 自定义排序

vector自定义sort( ):std::sort大法好!std::vector大法好!lambda大法好!
  • u013390476
  • u013390476
  • 2015年12月29日 11:40
  • 5243

关于C++各类排序算法与std::sort性能的比较

talk is cheap.直接放代码(C++)。 先定义一个计时的类。 class Time_count//时间计时类,需要#include { private: clock_t ...
  • qq_24625045
  • qq_24625045
  • 2015年11月21日 14:26
  • 2965

C++11使用lambda操作std::map

方法1: std::for_each(_deliverySessionsMap.begin(), _deliverySessionsMap.end(), [](const std::pair& pai...
  • shltsh
  • shltsh
  • 2014年05月04日 16:27
  • 1338

C# 中使用Linq和Lambda表达式对List<T>进行排序

C#中List排序的两种方法 List stu = (ListStudent>)Session["StudentList"]; Linq表达式: //按学号降序 Lis...
  • fysuccess
  • fysuccess
  • 2014年07月02日 14:07
  • 9648

sort、sorted、lambda表达式和reduce

原文:http://www.cnblogs.com/65702708/archive/2010/09/14/1826362.html http://blog.csdn.net/imzoer/artic...
  • zcy19941015
  • zcy19941015
  • 2015年07月25日 10:24
  • 3456

使用c++的 list.sort()进行排序

转载自:http://hi.baidu.com/yatusiter/blog/item/834b8694b6370c19d31b7014.html c++ list sort方法 在...
  • zhongjling
  • zhongjling
  • 2012年08月08日 20:50
  • 17332

初窥c++11:lambda函数及其用法

为什么需要lambda函数 匿名函数是许多编程语言都支持的概念,有函数体,没有函数名。1958年,lisp首先采用匿名函数,匿名函数最常用的是作为回调函数的值。正因为有这样的需求,c++引入了lamb...
  • booirror
  • booirror
  • 2014年05月25日 19:13
  • 24081

【C++11新特性】 Lambda表达式

C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多...
  • Xiejingfa
  • Xiejingfa
  • 2016年02月22日 14:03
  • 1351

C++11 lambda使用注意

c++11开始支持了lambda,在很多地方提供了很大地便利,尤其是在STL中。但在真正弄清楚之前,不要滥用。lambda虽然方便,好用,但也有一些需要注意的地方,使用不当会造成一些奇奇怪怪的错误。其...
  • mymodian
  • mymodian
  • 2016年07月17日 22:58
  • 1260

JAVA8之lambda表达式详解,及stream中的lambda使用

1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda只是有个语法糖吗? 6.stream...
  • jinzhencs
  • jinzhencs
  • 2016年02月26日 11:03
  • 22372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++11版本list中sort用lambda表达式
举报原因:
原因补充:

(最多只允许输入30个字)