一种临时性的轻量化的匿名函数
什么是Lambda
Lambda是C++ 11 中的新标准, 用于定义并创建匿名的函数对象,以简化编程工作。
Lambda 语法
1 | [函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体} |
例如:
1 | [] (int x, int y) -> int { int z = x + y; return z; } 返回类型为int |
1 | [] (int x, int y) { return x + y; } // 隐式返回类型 |
Lambda 常用场景
在算法中用于定义排序规则
1 | sort(people.begin(), people.end(), |
上面的lambda表达式定义了排序规则,其解释如下:
按照h递减 (lhs[0] > rhs[0])
h相同时,按照k递增 (lhs[1] <= rhs[1])