C++ lambda如何捕获并修改捕获变量

avatar
作者
猴君
阅读量:0

在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的值。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!