Lambda表达式是C++11引入的一种新的语法特性,具有以下特点:
- Lambda表达式可以在函数内部定义匿名函数,无需定义函数名称。
- Lambda表达式可以捕获其所在作用域内的变量,包括传值捕获和引用捕获。
- Lambda表达式可以以传值方式或引用方式传递给函数或算法。
- Lambda表达式可以作为函数对象传递给STL算法,可以作为谓词传递给标准库中的算法。
- Lambda表达式可以有返回值,可以有参数列表。
- Lambda表达式可以使用auto关键字进行参数类型推导。
- Lambda表达式可以省略参数列表和返回值类型,由编译器进行推导。
- Lambda表达式可以使用捕获列表来显式指定需要捕获的变量。
- Lambda表达式可以在其内部定义局部变量和使用控制流语句。
- Lambda表达式的语法简洁,可以方便地在需要使用函数对象的地方替代传统的函数对象定义方式。