介绍lambda
![在这里插入图片描述](https://img-blog.csdnimg.cn/2ace5b3eb20c451ba119069bf1b53a01.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyN57Kf,size_20,color_FFFFFF,t_70,g_se,x_16
auto f=[]{return 42;};
cout<<f<<endl;
向lambda传递参数
使用捕获列表
调用find_it
for_each算法
#include <iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
void biggies(vector<string> &words,vector<string>::size_type sz)
{
sort(words.begin(),words.end());
//按照长度排序,长度相同就按照字典排序
stable_sort(words.begin(),words.end(),[](const string &a,const string &b){return a.size()<b.size();});
//获取一个迭代器,获取第一个满足size()>=sz的元素
auto wc=find_if(words.begin(),words.end(),[sz](const string &a){return a.size()>=sz;});
//计算满足size()>=sz的元素个数
int count =words.end()-wc;
cout<<count<<make_plural(count,"word","s")<<"the length of"<<sz<<"or no longer"<<endl;
//打印长度大于sz的单词
for_each(wc,words.endl(),[](const string &s){ cout<<s<<endl;});
}
int main() {
vector<string> word={"afsd","asdfas","asdf","sff","ad","sad"};
biggies(word,3);
auto f=[]{return 42;};
cout<<f<<endl;
cout << "test\n";
return 0;
}
本文参考:C++ Primer第五版