lambda表达式

基本结构
[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}

引入符说明
[]不捕获任何外部变量
[=]以传值的方式捕获所有外部变量
[&]以传引用的方式捕获所有外部变量
[x,&y]x 以传值的方式捕获,其余外部变量传引用的方式捕获
[=,&x]x以传引用的方式捕获,其余外部变量以传值的方式捕获
[&,x]以传值的方式捕获,其余外部变量传引用的方式捕获
#include <iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;
int main()
{
    size_t v1 = 15;
    auto f1 = [v1]{return v1;};
    auto f2 = [&v1]{return v1;};
    cout << "f1 = " << f1()<<endl;
    cout << "f2 = " << f2()<<endl;
    v1 = 51;
    cout<<"---------------"<<endl;
    cout << "f1 = " << f1()<<endl;
    cout << "f2 = " << f2()<<endl;
    cout<<"---------------"<<endl;

    int a[4] = {11, 2, 33, 4};
    sort(a, a+4, [=](int x, int y) -> bool { return x < y; } );
    for_each(a, a+4, [=](int x) { cout << x << " ";} );
    cout<<endl;
    return 0;
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值