C++ lambda 匿名函数

看了明仕强老师的课程,C++匿名函数也可以很简单


下面请看示例代码:

cpp 复制代码
/*
lambda表达式学习,测试主函数
*/


#include <iostream>

using namespace std;

int main()
{
    printf("Lambda test Demo:\n");
    //值捕获,值捕获的时候不能修改变量值的
    int value = 100;
    auto f = [value](int a ,int b)->int{
        return a+b+value;
    };
    cout << f(1,2)<<endl;
    
    
    //引用捕获,可以改变变量值
    auto f2 = [&value](int a,int b)->int{
        value ++;
        return a+b;
    };
    cout<<f2(1,3)<<endl;
    cout<<"value:"<<value<<endl;
    
    //隐式捕获
    // = 值捕获
    // & 引用捕获
    int age = 123;
    auto f3 = [&](int a ,int b)->int{
        value++;//如果把&更换为= 则这里修改变量编译的时候会出错
        age++;//如果把&更换为= 则这里修改变量编译的时候会出错
        return a+b;
        
    };
    

    return 0;
}
相关推荐
十五年专注C++开发9 小时前
C++之std::numeric_limits介绍
开发语言·c++·limits
2501_925963389 小时前
Hi3516 + WS73 SDIO Wi-Fi 适配笔记
java·开发语言
CoderYanger9 小时前
视频切割脚本(Python版)
linux·开发语言·windows·后端·python·程序人生·职场和发展
辞旧 lekkk9 小时前
CMake工程指南(一)
linux·运维·服务器·开发语言·qt·学习·萌新
小七在进步9 小时前
数据结构:用栈实现队列
开发语言·数据结构
KaMeidebaby9 小时前
卡梅德生物技术快报|噬菌体筛选:噬菌体筛选工程化优化方案:基于侵染全链条参数调控与水环境应用验证
java·开发语言·人工智能·机器学习·spark
geovindu9 小时前
go: Floyd-Warshall Algorithms
开发语言·后端·算法·golang
CoderYanger9 小时前
视频裁剪+缩放+自动添加水印脚本(Python版)
开发语言·后端·python·程序人生·职场和发展·音视频·学习方法
酷酷的身影9 小时前
Managers/APConfigManager.cs
开发语言·ui·c#
拳里剑气9 小时前
C++算法:优先级队列
开发语言·c++·算法·优先级队列