C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问。
Lambda表达式的语法通过下图来介绍:
- Lambda表达式的引入标志,在‘[]’里面可以填入‘=’或‘&’表示该lambda表达式“捕获”(lambda表达式在一定的scope可以访问的数据)的数据时以什么方式捕获的,‘&’表示一引用的方式;‘=’表明以值传递的方式捕获,除非专门指出。
- Lambda表达式的参数列表
- Mutable 标识
- 异常标识
- 返回值
- “函数”体,也就是lambda表达式需要进行的实际操作
// lambda.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <iostream>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{int x = 10,
y = 3,
z;z = [=]() mutable throw() -> int { int n = x + y; x = y; y = n; return n; }();cout << z << endl;
cout << "x:" << x << "\t" << "y:" << y << endl;return 0;
}