C++11新特性-lambda函数
2017-07-01 11:25
253 查看
在数理逻辑或计算机科学领域中,lambda则是被用来表示一种匿名函数,这种匿名函数代表了一种所谓的λ演算。
而从软件开发的角度看,以lambda概念为基础的函数式编程是与命令式编程、面向对象编程等并列的一种编程范型。
[capute] (parameters) mutable->return type{statement}
[capute]:捕捉列表。捕捉列表总是出现在lambda函数的开始处。事实上,[]是lambda引出符。编译器根据该引出符判断接下来的代码是否是lambda函数。捕捉列表能够捕捉上下文中的变量以供lambda函数使用。
parameters:参数列表。与普通函数的参数列表一致。如果不需要参数传递,则可以连同括号()一起省略。
mutable:mutable修饰符。默认情况下lambda函数总是一个const函数。mutable可以取消其常量性。在使用该修饰符时,参数列表不可省略(即使参数为空)。
return type:返回类型。用追踪返回类型形式声明函数的返回类型。
statement:函数体。内容与普通函数一样,不过除了可使用参数之外,还可以使用所有捕获的变量。
最简单的lambda函数
[]{}
Ex:[](int x,int y)->int{return x+y;};
不需要定义函数名,取而代之的是一对方括号([])
采用追踪返回类型的方式声明其返回值
如果需要定义的常量的值由自己初始化状态决定,可以使用lambda
http://blog.csdn.net/zhangxiangdavaid/article/details/44064765
而从软件开发的角度看,以lambda概念为基础的函数式编程是与命令式编程、面向对象编程等并列的一种编程范型。
lambda函数语法
lambda函数语法定义:[capute] (parameters) mutable->return type{statement}
[capute]:捕捉列表。捕捉列表总是出现在lambda函数的开始处。事实上,[]是lambda引出符。编译器根据该引出符判断接下来的代码是否是lambda函数。捕捉列表能够捕捉上下文中的变量以供lambda函数使用。
parameters:参数列表。与普通函数的参数列表一致。如果不需要参数传递,则可以连同括号()一起省略。
mutable:mutable修饰符。默认情况下lambda函数总是一个const函数。mutable可以取消其常量性。在使用该修饰符时,参数列表不可省略(即使参数为空)。
return type:返回类型。用追踪返回类型形式声明函数的返回类型。
statement:函数体。内容与普通函数一样,不过除了可使用参数之外,还可以使用所有捕获的变量。
最简单的lambda函数
[]{}
Ex:[](int x,int y)->int{return x+y;};
与普通函数不同点
lambda函数于普通相比:不需要定义函数名,取而代之的是一对方括号([])
采用追踪返回类型的方式声明其返回值
应用
C/C++不允许局部函数(函数作用域中定义的函数),lambda可以发挥类似的作用如果需要定义的常量的值由自己初始化状态决定,可以使用lambda
实现
见此篇博客,仿函数是编译器实现lambda表达式的一种方式。仿函数是重载了成员函数operator的一种自定义函数对象。http://blog.csdn.net/zhangxiangdavaid/article/details/44064765
相关文章推荐
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数) 一段代码即可理解
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11 新特性之Lambda函数(匿名函数)
- C++11新特性之Lambda函数
- C++11的新特性 Lambda 函数
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11特性--Lambda函数
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)
- C++11新特性:Lambda函数(匿名函数)