一、定义
Lambda 表达式是 C++11 引入的一个功能,允许你在代码中定义匿名函数(即没有名字的函数)。这种表达式可以用于简化函数对象的定义,并使得代码更简洁。Lambda 表达式特别适用于局部的、一次性的函数对象,如用于 STL 算法中。
二、基本语法
[捕获列表](参数列表)mutable(可选)异常属性 -> 返回类型(可省略){
// 函数体
}
返回类型可自动推导,但是如果有多个return语句还是要显示指定。
int main() {
auto Add = [](int a, int b)->int {
return a + b;
}
std::cout << Add(1, 2) << std::endl; // 输出3
return 0;
}
int main() {
auto Add = [](int a, int b) {
return a + b;
}
std::cout << Add(1, 2) << std::endl; // 输出3
return 0;
}
三、捕获列表
- 值捕获
用 ‘=’ 表示,前提是捕获的变量可以拷贝,在表达式被创建的时候即捕获,捕获的变量即使后面被更改也不会改变函数体内的值。
void main()
{
int c = 12;
int d = 30;
auto Add = [c, d

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



