温馨提示×

C++ lambda捕获可以修改值吗

c++
小樊
147
2024-07-05 18:56:19
栏目: 编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

是的,C++ lambda捕获可以修改捕获的值。 Lambda可以捕获外部作用域的变量并修改它们的值,但默认情况下是以传值的方式捕获的,因此如果想要修改捕获的值,需要使用引用捕获。例如:

#include <iostream>

int main() {
    int x = 10;
    
    auto lambda = [&x]() {
        x = 20;
    };
    
    lambda();
    
    std::cout << x << std::endl; // 输出 20
    
    return 0;
}

在这个例子中,lambda捕获了变量x的引用,并修改了它的值为20,因此在lambda执行后,x的值变为20。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:C++ lambda如何捕获并修改捕获变量

0