lambda表达式:
[my_int] (const int &a) {return a>my_int;}
捕获列表 参数列表 函数体
捕获列表指的是lambda中要用到的局部变量。没有时则[]为空
返回类型自动由函数体中return的内容确定。没有时则连同()一起省略
全局变量等 无需捕获,可以直接在函数体中使用
find_if结合lambda表达式
int my = 3;
std::vector<int> a = { 2,3,4 };
std::vector<int> b = { 7,8,9 };
auto wc = find_if(b.begin(), b.end(), [my](const int &x) { return x > my; });
这样的话,只需要一元谓词就可以用了两个参数(my作为局部变量被捕获,不算参数)。
wc 返回指向第一个满足条件为真的元素 即大于3的元素。
for_each函数
for_each(v.begin(),v.end(), lambda表达式)
对于由前两个元素划出的范围中的每一元素,调用第三个参数。