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;
}
相关推荐
abbgogo2 小时前
OSPF动态路由协议
开发语言·php
我不会插花弄玉2 小时前
15.map,set下:AVL树,红黑树和map,set的封装【由浅入深-C++】
c++·stl
en.en..2 小时前
C 语言嵌入式事件驱动状态机完整教程(枚举配套)
c语言·开发语言
hold?fish:palm2 小时前
20 旋转图像
c++·算法·leetcode
Tim_102 小时前
【C++】024、new[]与delete[]配对使用
java·开发语言
Yyyyyy~2 小时前
[C语言]break和continue作业
c语言·开发语言
小黑技术栈2 小时前
Java前端基础到入门——16day
java·开发语言·前端
此生决int2 小时前
深入理解C++系列(10)——lsit
开发语言·c++
NoteStream2 小时前
【C语言基础】分支和循环(上)
c语言·开发语言·c++·经验分享·笔记·算法·c#
2401_827499992 小时前
C++(黑马)05-提高编程
java·开发语言·c++