首页 > 编程语言 >lambda表达式的用例 c++

lambda表达式的用例 c++

时间:2024-05-27 23:34:35浏览次数:23  
标签:callbacks int auto c++ 列表 用例 include 表达式 lambda

出自:   https://blog.csdn.net/qq_45604814/article/details/132687858

一、Lambda表达式概述
1.介绍
Lambda表达式是C++11标准引入的一种特性,它提供了一种方便的方式来定义匿名函数。Lambda表达式是一种能够捕捉外部变量并使用它们的函数对象。由捕获列表、参数列表、返回类型和函数体组成;其中,参数列表和返回类型可以忽略,但不可以忽略捕获列表和函数体。

[捕获列表](参数列表) -> 返回类型 {函数体}

例如:auto f = []{ return 1 + 2; }; 或者 auto f = [](int x, int y)->int{ return x + y; };

#include <iostream>
#include <functional>
#include <vector>
using namespace std;
class EventHandle
{
public:
    void registerCallback(function<void()> callback)
    {
        callbacks.push_back(callback);
    }
    void triggerEvent()
    {
        for (auto& testCallback : callbacks)
        {
            testCallback();
        }
    }
private:
    vector<function<void()>> callbacks;

};
int main()
{
    EventHandle eventHandle;
    eventHandle.registerCallback([] {cout << "run " << endl; });
    eventHandle.registerCallback([] {cout << "run1 " << endl; });
    //sleep(3);
    eventHandle.triggerEvent();
    int c = 12;
    int d = 30;
    auto Add = [c, d](int a, int b)->int {
        cout << "result = " << c+d << endl;
        return c; };
    Add(c,d);
}

 

标签:callbacks,int,auto,c++,列表,用例,include,表达式,lambda
From: https://www.cnblogs.com/xiaochouk/p/18216855

相关文章

  • 打开编程世界 跟着Mr.狠人一起学C/C++
    打开编程世界跟着Mr.狠人一起学C/C++自我介绍大家好,我是Mr.狠人。我高中就读于墨尔本,学习的方向是会计,因为疫情我回到国内读大学,大学的专业是国贸,可以说我没有任何的计算机基础。但我在海外研究生阶段毅然决然的选择了计算机专业,我本可以选择金融专业,或是更简单的管理专业......
  • C++ ─── string的模拟实现
            本博客将简单实现来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。    下期我们继续讲解完整版string的模拟实现(将不再会是浅拷贝了)        说明:下述string类没有显式定义其拷贝构造函数与赋值运......
  • A Simple Problem with Integers(C++)
     【题目描述】这是一道模板题。给定数列 a[1],a[2],…,a[n] ,你需要依次进行q 个操作,操作有两类:C、lrx :给定 l,r,x ,对于所有 i∈[l,r] ,将 a[i] 加上 x (换言之,将 a[l],a[l+1],…,a[r] 分别加上 x );Q、lr :给定l,r ,求 ∑ri=la[i] 的值(换言之,求 a[l]+a[l+......
  • c++设计模式-装饰器模式和代理模式
    namespace_nmsp1{//抽象的控件类classControl{public:virtualvoiddraw()=0;//draw方法,用于将自身绘制到屏幕上。public:virtual~Control(){}//做父类时析构函数应该为虚函数};//列表控件类classListCtrl......
  • 【C++】旋转字符串——精准与否,就是屠宰和手术的区别
    ✨题目链接:NC114旋转字符串✨题目描述 字符串旋转:给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(可以为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’......
  • C++系列-operator new和operator delete函数
    ......
  • 图像处理之基于标记的分水岭算法(C++)
    图像处理之基于标记的分水岭算法(C++)文章目录图像处理之基于标记的分水岭算法(C++)前言一、基于标记点的分水岭算法应用1.实现步骤:2.代码实现总结前言传统分水岭算法存在过分割的不足,OpenCV提供了一种改进的分水岭算法,使用一系列预定义标记来引导图像分割的定义方式......
  • c++箭头运算符在类与结构体之间可以做的功能简介
    #include<iostream>//箭头运算符在类与结构体之间可以做的功能以及重载运算符。#include<string>classentity{public: intx;public: voidprint()const{std::cout<<"hello!"<<std::endl;}};classscopedPtr{private: entity*m_Obj;public: sc......
  • 【C++】开源:RabbitMQ安装与配置使用(SimpleAmqpClient)
    ......
  • 基于SpringBoot的酒店订房系统-82159(免费领源码+数据库)可做计算机毕业设计JAVA、PHP、
    springboot酒店订房系统摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,酒店订房系统当然也不能排除在外。酒店订房系统是以实际运用为开发背景,运用软件工程开发方法,采用springboot技术构建的一个管理系统......