C++ lamda
lamda lamda表达式是c++11规范引入的新语法。“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。 基本语法如下1 [ capture ] ( parameters ) mutable { statement } 基本语法如下2 [ capture ] ( parameters ) mutable - > return - type { statement } 推介使用第二种,因为更加简洁。 各部分解释如下 [capture]:捕捉列表。捕捉列表总是出现在Lambda函数的开始处。实际上,[]是Lambda引出符。编译器根据该引出符判断接下来的代码是否是Lambda函数。捕捉列表能够捕捉上下文中的变量以供Lambda函数使用; (parameters):参数列表。与普通函数的参数列表一致。如果不需要参数传递,则可以连同括号“()”一起省略; mutable:mutable修饰符。默认情况下,Lambda函数总是一个const函数,mutable可以取消其常量性。在使用该修饰符时,参数列表不可省略(即使参数为空); ->return-type:返回类型。用追踪返回类型形式声明函数的返回类型