转自:https://www.cnblogs.com/pzhfei/archive/2013/01/14/lambda_expression.html
1.匿名/Lambda函数
[capture](parameters)->return-type{body}
如果没有参数,空的圆括号()可以省略.返回值也可以省略,如果函数体只由一条return语句组成或返回类型为void的话.形如:
[capture](parameters){body}
2.举例
//两数加法 [](int x, int y) { return x + y; } // 隐式返回类型 //自增 [](int& x) { ++x; } // 没有return语句 -> lambda 函数的返回类型是'void' []() { ++global_x; } // 没有参数,仅访问某个全局变量 []{ ++global_x; } // 与上一个相同,省略了()
//太厉害了。
//给出了返回类型的 [](int x, int y) -> int { int z = x + y; return z; }
上面是给出了返回类型->int,如果什么也不返回->void可以省略。
3.[]的作用
这里主要是为了让lamda表达式可以访问外面的元素。根据设置的不同可以分为按值、引用等。