Advertisement

c++中使用lambda表达式的作用和用法

阅读量:

lambda表达式

这是C++11标准新增的一项功能,允许用户在需要构造函数对象的场景中,直接编写一个无需命名且能够捕获外部变量的函数实现,特别适用于作为回调函数、临时运算或创建小型函数对象的情形。
lambda表达式与常规函数在结构上具有相似之处,同样包含参数列表、返回类型以及函数体,但其定义形式更为简练,并且支持在函数内部进行定义。

lambda表达式的语法

lambda表达式通常采用以下结构进行表示:

复制代码
    [capture] (parameters) mutable -> return-type { body }
    
    

其中:

  • [capture] 用于定义捕获列表,其作用是表明lambda表达式能够获取哪些来自外部环境的变量,通过值传递或引用传递的方式 。该列表可以为空,意味着不引入任何变量;此外,也可以使用 =& 来分别表示对所有变量进行值传递或引用传递的捕获方式,或者明确列出需要捕获的变量名称,并以逗号作为分隔符。例如:
复制代码
 [a, &b] // 按值捕获a,按引用捕获b

    
 [=, &c] // 按值捕获所有变量,但按引用捕获c
    
 [&] // 按引用捕获所有变量
    
 [this] // 捕

全部评论 (0)

还没有任何评论哟~