lambda表达式的用例 c++

出自:   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);
}

 

posted @ 2024-05-27 23:26  小丑_jk  阅读(5)  评论(0编辑  收藏  举报