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:lambda函数及其用法

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

Caffe: Faster-RCNN Python版本配置 (Windows)

环境:VS2013,CUDA8.0,CuDNN 5.0,Win10/7,Anaconda一、准备工作1. 添加VS的cl.exe所在路径至环境变量VS的安装路径下有一个VC文件夹,将其中的bin目录添...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Caffe: Faster RCNN训练模型(Windows)

用自己数据训练faster rcnn,windows版

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

vector自定义sort( ):std::sort大法好!std::vector大法好!lambda大法好!

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

C#中List排序的两种方法 List stu = (ListStudent>)Session["StudentList"]; Linq表达式: //按学号降序 Lis...

C# List<T>排序总结

这里有很多种方法对List进行排序,本文总结了三种方法,但多种实现。1.对基础类型排序方法一:调用sort方法,如果需要降序,进行反转:List list = new List(); list.Sor...

Linq排序-Lambda动态附加条件和排序语句

一种常见的情况, 使用linq-to-sql 或者lambda(Entity framework)去数据库取条件的时候需要附加多个条件或者排序语句 以 Name="John" Age=23 为例...

C++11 -----一切从lambda说起

Lambda表达式看了孟岩大大的一篇blog(http://blog.csdn.net/myan/article/details/5877305),偶决定先学一些主线内容: ①lambda表达式 ...

C++11 lambda表达式基本用法

#include using namespace std; void func1() { cout<<"lambda表达式,值捕获,类似值传递"<<endl; size_t v1...

【C++11】Lambda表达式

文字部分来源于百度百科 “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda ab...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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