Lambda表达式 匿名函数

最后更新于 2022-09-07 528 次阅读


构成如上图

实例:

#include <bits/stdc++.h>
using namespace std;

// lambda表达式 匿名函数
auto f = [](auto x, auto y)
{
    return x * y;
};

int main()
{
    cout << f(3, 4);
    return 0;
}

//12

captures

[] 不截取任何变量
[&] 截取外部作用域中所有变量,并作为引用在函数体中使用
[=] 截取外部作用域中所有变量,并拷贝一份在函数体中使用
[=, &foo]   截取外部作用域中所有变量,并拷贝一份在函数体中使用,但是对foo变量使用引用
[bar]   截取bar变量并且拷贝一份在函数体重使用,同时不截取其他变量
[this]            截取当前类中的this指针。如果已经使用了&或者=就默认添加此选项。