#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <functional>
using namespace std;
int main(){
vector<int> scores{8,2,4,1};
// lambda函数
for_each(begin(scores),end(scores),[](int n)->float
{
cout << n << endl;
return n;
});
auto is_positive = [](int n)->bool{return n > 0;};// 不捕捉外部环境时,[]里啥也没有
cout << boolalpha << is_positive(-2) << endl; // boolalpha 内置
auto zero = 0;
auto is_nagative = [zero](int n)->bool{return n < zero;};// 捕获外部变量zero,以值的方式捕获,任意以=方式捕获,&表示引用捕捉
function<int(int)> fib = [&fib](int x)->int{ return x < 2 ? 2 : fib(x - 1) + fib(x - 2);};// 函数递归指明类型和捕捉
cout << fib(9) << endl;
getchar();
return 0;
}
lambda函数使用
最新推荐文章于 2024-11-04 23:24:03 发布