[C++基础]C++11匿名函数Lambda表达式

本文介绍了C++11引入的Lambda表达式,详细阐述了其定义形式,包括不同类型的外部变量访问方式说明符,如[]、[=]、[&]以及[this]的用法,并探讨了更复杂的捕捉列表用法,如[=, &x, &y]和[&, x, y]。Lambda表达式使得在C++中定义匿名函数更为便捷和灵活。" 118993713,8591171,Hi3536D V100 SDK安装全攻略,"['嵌入式开发', 'Linux', '海思', '编译工具', 'Ubuntu']
摘要由CSDN通过智能技术生成
#include <iostream>
using namespace std;

int main() {

    []() { cout << "hello, world" << endl; }();

    auto add = [](int a, int b)->int{
        return a + b;
    };
    int ret = add(1,2);
    std::cout << "ret:" << ret << std::endl;
    //输出  ret:3

    int c = 0;
    []() {
//        int a = c;//不能访问变量c
    }();

    [=](int a) {
//        c = 1;//不能改变c的值;改成[&]就可以了
    }(1);

    int x = 100,y=200,z=300;
    auto ff  = [=,&y,&z](int n) {
        cout << x << endl;//输出 100
        y++; z++;
        return n*n;
    };
    cout << ff(15) << "," << y << "," << z << endl;
    //输出  225,201,301

    return 0;
}

Lambda 表达式的定义形式如下:

[外部变量访问方式说明符] (参数表) -> 返回值类型
{
   语句块
}

“外部变量访问方式说明符”可以是=或&,表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值