c++第五版练习10.14 10.15

lambda认识:一个lambda表达式表示一个可调用的代码单元,我么可以将其理解为一个未命名的内联函数,一个lambda具有一个返回类型、一个参数列表和一个函数体 ;lambda可能定义在一个函数内部。

lambda的表达式:[capture list](parameter list )->return type{function body}

 

练习10.14 编写一个lambda ,接受两个int ,返回他们的和;

#include <iostream>

using namespace std;
int main()
{
    int a=5, b=6;
    auto sum = [](int &a, int &b) {return a + b; }; //lambda表达式
    cout << sum(a,b) << endl;
        return 0;
}

 

练习10.15编写一个lambda,捕获它所在函数的int,并接受一个int参数,lambda应该返回捕获的int和int参数的和

#include <iostream>

using namespace std;

int sum(const int &a, const int &b)//函数
{
    auto f = [a](int b) {return a + b; };//lambda表达式在函数的内部,a来源于函数所在的int型参数
    return f(b);
}
int main()
{
    int a=5, b=6;
    cout << sum(a,b) << endl;
    return 0;
}

 

posted on 2017-03-21 14:08  whitem  阅读(169)  评论(0编辑  收藏  举报