Lambda 表达式在 C++ 中是一种强大的匿名函数,具有以下优点:简洁性:减少冗余和复杂性。匿名性:轻松用作函数参数。灵活性:可捕获外部变量,允许运行时修改。性能:避免函数调用开销。局限性:只能捕获已声明的外部变量。捕获的变量在函数结束后仍存在,可能导致内存泄漏。匿名性使得调试更困难。捕获变量和使用不同捕获模式时可能很复杂。
Lambda 表达式是 C++ 语言中引入的强大功能,用于创建匿名函数。它们可以帮助简化和优化代码,但是也有一些局限性。
下面是一个使用 lambda 表达式的示例,用于将一个字符串列表转换为大写:
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<std::string> names = {"John", "Jane", "Mark", "Sarah"}; std::transform(names.begin(), names.end(), names.begin(), [](std::string& s) { return std::toupper(s); }); for (const auto& name : names) { std::cout << name << std::endl; } return 0; }
在此示例中,lambda 表达式 [](std::string& s) { return std::toupper(s); }
用作 std::transform
函数的参数,它将每个字符串转换为大写。