c++中lambda表达式的用法
#include <iostream> using namespace std; int main(){ int a = 10; auto func1 = [=](int b){return a +b+ 1;}; auto func2 = [&](int b,int c){return a+b+c + 1;}; cout << func1(1) << endl; cout << func2(1,2) << endl; a++; cout << func1(1) << endl; cout << func2(1,2) << endl; return 0; }
在“[]”包括起来的是捕捉列表,捕捉列表由多个捕捉项组成,并以逗号分隔。捕捉列表有以下几种形式:
1.[var]表示值传递方式捕捉变量var;
2.[=]表示值传递方式捕捉所有父作用域的变量(包括this);
3.[&var]表示引用传递捕捉变量var;
4.[&]表示引用传递方式捕捉所有父作用域的变量(包括this);
5.[this]表示值传递方式捕捉当前的this指针。
原文: https://blog.csdn.net/iloveyousunna/article/details/78532398