Lambda
定义
[capture list] (params list) mutable exception-> return type { function body }
含义
capture list
:捕获外部变量列表(中括号必需)params list
:形参列表(可选)mutable
:指示符,用来说用是否可以修改捕获的变量(可选)exception
:异常设定(可选)return type
:返回类型(可选)function body
:函数体(大括号必需)
示例
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b)
{
return a < b;
}
int main()
{
vector<int> myvec{ 3, 2, 5, 7, 3, 2 };
vector<int> lbvec(myvec);
sort(myvec.begin(), myvec.end(), cmp); // 旧式做法
cout << "predicate function:" << endl;
for (int it : myvec)
cout << it << ' ';
cout << endl;
sort(lbvec.begin(), lbvec.end(), [] (int a, int b) -> bool { return a < b; }); // Lambda表达式
cout << "lambda expression:" << endl;
for (int it : lbvec)
cout << it << ' ';
}
参考
最后更新于
这有帮助吗?