首页 > 编程语言 >c++匿名表达式

c++匿名表达式

时间:2022-11-15 23:23:22浏览次数:60  
标签:return int c++ ++ 匿名 表达式 lambda

C++ 11 Lambda表达式 

C++11中的匿名函数(lambda函数,lambda表达式)

https://gitlab.com/yzzy/modern-cpp/-/blob/main/c16_lambda/main.cpp

[](int x, int y) { return x + y; } // 隐式返回类型
[](int& x) { ++x; }   // 没有return语句 -> lambda 函数的返回类型是'void'
[]() { ++global_x; }  // 没有参数,仅访问某个全局变量
[]{ ++global_x; }     // 与上一个相同,省略了()
// 显示指定返回类型
[](int x, int y) -> int { int z = x + y; return z; }

 

匿名函数的使用
int aa = 123;
    auto f = [aa]{cout << aa << endl;};
    f();   // 输出123

    // 或通过函数体后面的()传入参数
    auto x = [](int aa){return aa;}(123); 
    cout << "x: " << x << endl;



    auto f1 = [](){cout << "abc" <<endl;};
    f1();                   // abc

    int a1{10};
    auto f2 = [a1](){cout << "a1: " << a1 <<endl;};
    f2();                   // a1: 10

    int b{20};
    auto f3 = [&b, a1](){
        cout << "a1: " << a1 << endl;
        cout << "b: " << b << endl;
        b += 1;
    };
    f3();                   // b: 20
    cout << "after b: " << b << endl;    // after b: 21


    int a{10};
    int b{20};

    auto func2 = [=]()
    {
        cout << "a :" << a << endl;
        cout << "b :" << b << endl;
    };

    auto func3 = [&]()
    {
        cout << "a :" << a << endl;
        cout << "b :" << b << endl;
        a++;
        b++;
    };

    func2();
    func3();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:return,int,c++,++,匿名,表达式,lambda
From: https://www.cnblogs.com/zijidan/p/16894434.html

相关文章

  • windows--cmake与c++的使用教程(5)
    1概述本文基于前文环境本节目标:关于cmake脚本错误处理及cmake脚本执行流程2错误提示当脚本语法出错时,cmake会输出错误位于哪个文件、第几行、以及错误原因。......
  • C++设备管理系统
    C++设备管理系统53.设备管理系统功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称......
  • java——API——匿名对象
                                               12.2.1匿名对象作为方法的......
  • java匿名内部类访问局部变量为啥要用final
    要明白这个问题,首先要知道java参数传递方式只有值传递,即函数调用过程中形参的改变不会影响实参。允许一下代码:1publicclassDemo{23privateUseruser;4......
  • C++20高级编程 第五版 电子书 pdf
    作者:[比]马克·格雷戈勒(MarcGregoire)出版社:清华大学出版社原作名:ProfessionalC++,FifthEdition 链接:C++20高级编程第五版  拥抱C++的深度和复杂性,挖掘......
  • Visual Studio C++ 默认 UTF-8 编码及 *.editorconfig 统一代码格式
    ​转载请注明原文链接:https://www.cnblogs.com/mechanicoder/p/16894144.html1.问题由来背景:团队使用VisualStudio进行跨平台项目开发。遇到的问题:编码:Windows......
  • C++动态链接MySQL库
    C++链接MySQL库库安装目录CMakeListcmake_minimum_required(VERSION3.22)project(MySQLConnectionPool)include_directories(/usr/include/mysql) #安装库路径s......
  • windows--cmake与c++的使用教程(4)
    1概述本文基于前文环境本节目标:编写创建可执行程序exe的cmake脚本2核心代码add_executable命令用于生成可执行程序3用法add_executable(项目名代码文件)......
  • 一个很好用的 C++ 高精度整数板子
    点击查看代码typedeflonglongll;typedeflongdoubleld;typedefcomplex<ld>pt;constintMOD=1e9+7;constldPI=acos(-1.L);template<classT>struc......
  • C++类的内存结构
     第一种这个类是个空类 sizeof会占用一个字节 newt也是占用一个字节但作为其他类的成员变量可能会占用1-2-4-8字节这个是类的内存对齐导致 第2种这......