lambda 表达式

1. lambda 表达式的语法

[捕捉列表] (参数列表) mutable ->return_type {函数体}

  • (参数列表) :与函数传参一致。不需要传递参数时,可以连同 () 省略。

  • mutable :传值捕捉时,mutable 可以取消参数的常性,使其在函数体内能被修改。不使用时,可以省略;使用该修饰符时,(参数列表) 不可省略(即使参数列表为空)。

  • ->return_type :函数体的返回值类型,通常可以省略,由编译器自行推导。

C++11 中,最简单的 lambda 表达式为 []{},但它没有任何作用。

1.2 lambda 用于sort的一个场景
struct Goods
{
    
    string _name;// 名称
    double _price;// 价格
    double _evaluations;// 评价

    Goods(const string& name, double price, double evaluations)
        :_evaluations(evaluations)
        , _price(price)
        , _name(name)
    {
    }
};
int main()
{
   
    vector<Goods> v = {
    {
    "苹果", 2.1, 5 }, {
    "香蕉", 3, 4 }, {
    "橙子", 2.2,3 }, {
    "菠萝", 1.5, 4 } };

    
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值