c++11之lambda表达式

作用:

  1. 匿名函数,对于某种情况下只需要运用一次的函数,避免污染环境。而且使得逻辑更加紧凑,更加易读。
  2. 闭包, 闭包是指将当期作用域的变量以值传递或者引用传递的方式封装到lambda表达式中。实际上就相当于将lambda表达式从一个普通的函数封装成了一个带隐藏参数的函数。

表达式规范:

[捕获参数] (入参) ->返回值 { 函数内容 }

捕获参数可以是以下形式:
  1. [ a, &b ] a变量以值传递的形式被捕获,b变量以引用的形式被捕获
  2. [ = ] 以值传递的方式捕获外部所有自动变量
  3. [ & ] 以引用传递的方式捕获外部所有自动变量
  4. [ this ] 以值传递的方式捕获this指针
  5. [ ] 不捕获任何变量

不需要的情况下,入参->返回值均可以省略

你可能感兴趣的:(c++11之lambda表达式)