lambda表达式

转载:牛客网某问题下大佬的回答

Q: lambda表达式:题干中形式为C++11标准里引入的lambda表达式;一个lambda表达式表示一个可调用的代码单元,也可将其理解为一个未命名的内联函数。(引入它的便利之处大家可自行search)

其基本形式如下:

[capture list ] ( parameter list ) -> return type { function body }  即:

[捕获列表] ( 参数列表 ) -> 返回类型 { 函数体 }

1、capture list (捕获列表)是一个lambda所在函数中定义的局部变量的列表(通常为空,写为 [] ),空捕获列表即表明此lambda不使用它所在函数中的任何局部变量;

2、" -> " 表明lambda使用了尾置返回类型;

3、可以忽略参数列表和返回类型,但必须永远包含捕获列表和函数体;比如:

       auto f = [ ] { return 42; }; // 定义了一个可调用对象f,它不接受参数,返回42。

       即常见形式如: [ ] { 函数体 }    或     [ ] ( int n ) { 函数体 }  ...

 

posted @ 2018-08-28 10:33  _KikyoBK  Views(100)  Comments(0Edit  收藏  举报