C++ lambda表达式含义

标签 c++ lambda c++14

我正在学习 C++ 中的 lambda 表达式。我在 https://learn.microsoft.com/en-us/cpp/cpp/lambda-expressions-in-cpp 找到了以下代码

     #include <iostream>  
     using namespace std;  

     int main()  
     {  
          int m = 0;  
          int n = 0;  
          [&, n] (int a) mutable { m = ++n + a; }(4);  
          cout << m << endl << n << endl;  
     }

输出: 5个 0

我无法理解 (4) 在 lambda 表达式的行。这个 (4) 是什么意思,它在 lambda 表达式中是如何使用的?

最佳答案

这有点类似于

int m = 0;
int n = 0;

void f(int a)
{
    m = n + 1 + a;
}

int main()
{
    f(4);
}

关于C++ lambda表达式含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596187/

相关文章:

java - 关于 Java 8 函数式接口(interface)的问题

c++ - 从 C++14 切换到 C++11 时修复的对 boost::system::detail::system_category_instance 的 undefined reference

c++ - 从 C++ 程序调用控制台应用程序

c++ - 使用 tr1 正则表达式查找字符串是否为 'numeric only'

c++ - 为什么 unordered_map 的 emplace with piecewise_construct 参数需要默认构造函数?

asp.net-mvc - 如何为采用参数的方法配置Fluent安全策略?

c# - 如何在列表中搜索在其任何属性值中包含子字符串的元素?

c++ - RAII状态管理

sockets - 哪些协议(protocol)值与 socket() 中的哪些域和类型组合兼容?

c++ - 不能使用从 std::unary_function 继承的 typedef