如何在C++中正确使用lambda捕获

   2024-10-07 5310
核心提示:在C++中使用lambda表达式时,可以通过捕获列表来捕获变量。捕获列表可以通过值捕获、引用捕获或隐式捕获来捕获变量。以下是一些

在C++中使用lambda表达式时,可以通过捕获列表来捕获变量。捕获列表可以通过值捕获、引用捕获或隐式捕获来捕获变量。

以下是一些示例,展示了如何在C++中正确使用lambda捕获变量:

值捕获:
int x = 10;auto lambda = [x]() {    std::cout << x << std::endl;};lambda(); // 输出:10
引用捕获:
int y = 20;auto lambda = [&y]() {    y++;    std::cout << y << std::endl;};lambda(); // 输出:21
隐式捕获:
int z = 30;auto lambda = [&](){    z++;    std::cout << z << std::endl;};lambda(); // 输出:31

在捕获列表中,可以同时使用值捕获和引用捕获,例如:

int a = 1;int b = 2;auto lambda = [a, &b]() {    a++;    b++;    std::cout << "a: " << a << ", b: " << b << std::endl;};lambda(); // 输出:a: 2, b: 3

需要注意的是,当通过引用捕获变量时,需要确保在lambda表达式执行完毕后,被捕获的变量仍然有效。

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

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