C++11之lambda表达式
来源:互联网 发布:php aes加密解密 编辑:程序博客网 时间:2024/06/09 16:12
C++11中引入了lambda表达式,允许使用匿名函数。
其语法如下:
1 函数对象参数,必须,标志lambda表达式的开始,有三种参数可选:
a 空,不能使用lambda表达式所在作用域中的变量。
b =,可以使用lambda表达式所在作用域中的变量,值传递。
c &,使用lambda表达式所在作用域中的变量,引用传递。
2 函数参数列表,非必需,无参数时可省略,lambda表达式的参数列表,即匿名函数的参数列表。
3 mutable生命,可省略,函数对象值传递时加上mutable可以修改形参的值,默认不能修改。
4 异常抛出生命,可省略,throw中可以指定lambda表达式抛出的异常类型,如throw(int e)。
5 返回值类型,当然会值为void或者只有一个返回值(编译器可自动推导)时,可以省略。
6 函数体,必需,但可以为空,书写逻辑。
示例:
#include <iostream>using namespace std;int main() { auto res = [] (int x, int y) ->int { return x + y; }(1, 2); cout << res << endl; auto x = 1; [] (int &x, int &y) -> void { auto tmp = x; x = y; y = tmp; }(res, x); cout << res << "," << x << endl; [&] { res += 1; }(); cout << res << endl; [=] () mutable -> void { res += 1; }(); cout << res << endl; return 0;}
结果如图:
0 0
- 【C++】C++11新特性 之 lambda表达式的使用
- 【C#】之匿名函数及Lambda表达式
- C++11之Lambda表达式
- C++ 11之lambda表达式
- C++11之lambda表达式
- c++11之lambda表达式
- C++11之lambda表达式
- c++11之 Lambda表达式
- C++ 11之lambda表达式
- 【c/c++】Lambda表达式
- C++11 学习笔记 lambda表达式
- C++11 学习笔记 lambda表达式
- C++11 学习笔记 lambda表达式
- C#--Lambda表达式
- C#:Lambda 表达式
- C++lambda表达式
- C++lambda表达式
- C# Lambda表达式
- Laravel-5.1 ---- 将mews captcha整合到项目中!
- LeetCode 35 Search Insert Position 二分法处理
- UIImage+ImageEffects的category 模糊效果
- 工程架构方向需要关注的几个顶级会议
- 【剑指Offer】斐波那契数列
- C++11之lambda表达式
- TQ2440挂载NFS
- uva11212_Editing a Book(A*算法)
- Qt动态库的生成和使用
- HDU 543Ponds
- const 与 readonly知多少
- wiggle sort Given a list of integers, sort them so the output is s1 <= s2 >=s3 <=s4 ... sN.
- 使用JAVA到处100W级别的EXECL到处
- Chapter 2