lambda表达式
- lambda 表达式 创建一个匿名函数
- 格式 [捕获的变量](函数的参数) mutable ->ret_type {函数体}(调用的时候传参)
- [] 捕获的外部变量
- [m] 捕获 m 值传递 且拷贝份不能修改 想修改 需要在()后加 mutable 关键字
- [&m] 引用捕获m 修改的是本体
- [&m,n] 引用捕获m, 值传递捕获n
- [=] 值传递 捕获外部所有变量 但是不能修改拷贝份 需要加mutable关键字
- [&] 引用传递 捕获外部所有变量 可以修改本体
- [&, n] n 为值传递捕获 其它为引用传递捕获
- [=, &n] n 为引用捕获 其它为值传递捕获
- ->ret_type 指定返回值类型
示例:
vector<int> v;
int a, b;
[v, &a, &b](int)mutable ->int {
return a;
}(a);
可以用于QT槽函数、STL函数对象等。