lambda表达式:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int a=9;
auto fun1=[=]{return a+1;};
auto fun2=[&]{return ++a;};
auto fun3=[&]{return a+1;};
++a;
cout<<fun1()<<endl;
cout<<fun2()<<endl;
cout<<fun3()<<endl;
return 0;
}
/*
10
11
12
*/
[=]代表传值,[&]代表引用。fun1定义时a是9,即使后面a改变,因是传值,故而传入的a还是9。