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

   2024-10-07 2860
核心提示:在C++中,lambda函数可以使用捕获列表来捕获外部变量,并且可以修改这些变量。捕获列表通过方括号([])来指定,其中包含要捕获的

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

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号