-
C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,用来简化编程工作。
-
Lambda 的语法形式:
1
[捕获列表] (参数列表) -> 返回值类型 { 函数体 };
-
[捕获列表]:这部分是捕获区,用于捕获外部变量,标识一个 Lambda 表达式的开始,不能省略
- 捕获列表为空:不捕获外部变量
- =:表示值传入
- &:表示引用传入
1
2
3
4
5
[a]:将 a 按值进行传递
[&a]:将 a 按引用进行传递。
[a,&b]:将 a 按值传递,b 按引用进行传递。
[=,&a,&b]:除 a 和 b 按引用进行传递外,其它参数都按值进行传递。
[&,a,b]:除 a 和 b 按值进行传递外,其它参数都按引用进行传递。
-
(参数列表):同函数参数列表
-
-> 返回值类型:这部分如果返回值为 void,可以省略
-
{ 函数体 }:同函数的函数体
-
简述一下C++11 中 Lambda 新特性
Lambda表达式是C++11引入的一个重要特性,它允许开发者定义和创建匿名函数对象,简化编程。Lambda的语法结构包括捕获列表、参数列表和返回值类型。捕获列表用于捕获外部变量,可以按值或按引用传递。例如,`[a]`表示按值捕获`a`,`[&a]`表示按引用捕获。Lambda表达式使得函数式编程风格在C++中更加便捷。
摘要由CSDN通过智能技术生成