第四节 · 小别致 · 枚举与联合类
Lambda 是 C++11 引入的匿名函数,随着标准的演进变得越来越强大。
Lambda 基础回顾
int main()
{
// 基本语法
auto add = [](int a, int b) { return a + b; };
cout << add(1, 2) << endl; // 3
// 捕获列表
int x = 10;
auto addX = [x](int a) { return a + x; }; // 值捕获
auto addXRef = [&x](int a) { return a + x; }; // 引用捕获
// 捕获全部
auto f1 = [=]() { return x; }; // 值捕获所有
auto f2 = [&]() { return x; }; // 引用捕获所有
return 0;
}mutable Lambda
初始化捕获(C++14)
泛型 Lambda(C++14)
模板 Lambda(C++20)
立即调用的 Lambda(IIFE)
递归 Lambda
Lambda 与 STL
捕获 this
Lambda 的类型
实用模式
习题
实现一个接受任意数量 Lambda 的
compose函数。使用 Lambda 实现一个简单的延迟计算(lazy evaluation)。
比较 Lambda 和函数对象的性能差异。
Last updated