在C++中,lambda函数可以使用捕获列表来捕获外部变量,并且可以修改这些变量。捕获列表通过方括号([])来指定,其中包含要捕获的变量。要在lambda函数中修改捕获的变量,需要使用mutable
关键字。
以下是一个简单的示例,演示了如何在C++ lambda函数中捕获并修改捕获的变量:
#include <iostream>
int main() {
int x = 10;
// Lambda function captures x by reference and modifies its value
auto lambda = [&x]() mutable {
x *= 2;
};
lambda(); // Call lambda function
std::cout << "Modified value of x: " << x << std::endl;
return 0;
}
在上面的示例中,lambda函数通过引用捕获了变量x
,并使用mutable
关键字使得变量x
可以在lambda函数中修改。在lambda函数中,我们将x
的值乘以2。最后输出修改后的x
的值。
运行上面的代码将输出:
Modified value of x: 20
这表明lambda函数成功地捕获并修改了变量x
的值。