一、概念
L
a
m
b
d
a
Lambda
Lambda 函数是C++11
及以后版本中引入的一种特性,它允许你定义一个匿名函数并直接在代码中使用。
L
a
m
b
d
a
Lambda
Lambda 函数通常用于定义简单的函数对象,特别是那些需要作为参数传递给其他函数的函数对象。
二、基本语法
[capture](parameters) -> return_type { function_body }
-
c
a
p
t
u
r
e
capture
capture 捕获列表,定义了在Lambda函数体内可以访问的外部变量,以及访问方式(值传递或引用传递)。
[]
表示不捕获任何外部变量[x]
表示以值传递的方式捕获变量[&x]
表示以引用传递的方式捕获变量x
[=]
表示以值传递的方式捕获所有外部变量[&]
表示以引用传递的方式捕获所有外部变量
- p a r a m e t e r s parameters parameters 参数列表,和普通函数的参数列表类似
- r e t u r n _ t y p e return\_type return_type 返回类型,和普通函数的返回类型类似。如果 L a m b d a Lambda Lambda 函数体只包含一个 r e t u r n return return 语句,或者不返回任何值,那么可以省略返回类型
- f u n c t i o n _ b o d y function\_body function_body 函数体