Lambda 函数(或简称为“lambda”)是一个匿名(未命名)函数,它在源代码中使用简洁的语法就地定义。Lambda 函数在 C++11 中引入,现已成为广泛使用的功能,尤其是与标准库函数结合使用。
C++ Lambda函数的基本句法是:
[capture-list](parameters) -> return_type {
// function body
};
以下是几个示例来演示 C++ 中 lambda 函数的使用:
auto printHello = []() {
std::cout << "Hello, World!" << std::endl;
};
printHello(); // Output: Hello, World!
auto add = [](int a, int b) {
return a + b;
};
int result = add(3, 4); // result = 7
int multiplier = 3;
auto times = [multiplier](int a) {
return a * multiplier;
};
int result = times(5); // result = 15
int expiresInDays = 45;
auto updateDays = [&expiresInDays](int newDays) {
expiresInDays = newDays;
};
updateDays(30); // expiresInDays = 30
Notice:当使用引用捕获时,对lambda 函数内捕获的变量所做的任何更改都会影响其在周围范围内的值。