c++

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

小樊
130
2024-07-05 19:04:22
栏目: 编程语言

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

0
看了该问题的人还看了