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); }