C++11中的匿名函数用法

发布时间 2024-01-03 17:19:44作者: FreeCheng

C++11中引用了匿名函数这一个新的特性,它的使用方法如下:

[capture](parameters) -> return_type { body } 

其中:

  • capture 指定了 Lambda 表达式可以访问的外部变量
  • parameters 是 Lambda 表达式的参数列表
  • return_type 是返回类型(可选)
  • body 是 Lambda 函数体

下面是一个简单的例子,演示了 Lambda 表达式的基本用法:

#include <iostream>  
using namespace std;  
  
int main() {  
    // Lambda 表达式捕获外部变量,并对传入的参数执行加法运算  
    int a = 5;  
    int b = 3;  
      
    auto sum = [a, b](int x, int y) -> int {  
        return a * x + b * y;  
    };  
  
    cout << sum(2, 3) << endl;  // 输出 19  
    return 0;  
}  

在这个例子中, a 和 b 是通过"值捕获"的方式引入的外部变量。Lambda 表达式接受两个参数 x 和 y,然后返回表达式 a * x + b * y 的结果。