优点
可以放在函数内部,因此离使用地点可以很近。
基本定义
auto f = [捕获外部变量] (形参列表) 指示符 异常设定 -> 返回类型{函数体};
其中,指示符
,异常设定
通常不写,返回类型可以智能判断(返回类型相当于使用decltype对返回值推断得出),除非情况特殊,也可以省略 ->返回类型
。
捕获外部变量
捕获外部变量 | 说明 |
---|---|
[] | 不捕获外部变量 |
[&] | 按引用捕获所有外部变量 |
[=] | 按值传递捕获所有外部变量 |
[a,...] | 具体将 a以按值传递捕获 |
[&a,...] | 具体将a以按引用传递捕获 |
形参列表
- 必须要有参数名,因为后面定义函数体中需要用到
使用方法
// 例1 直接使用
count1 = std::count_if(n1.begin(),n1.end(),[](int x){return x%3 == 0;});
// 例2 命名再使用
auto f = [](int x) {return x % 3 == 0;};
count1 = std::count_if(n1.begin(),n1.end(),f);