C++11中Lambda的用法

在C++11中,Lambda表达式是一种匿名函数的形式,它可以在需要函数对象的地方使用。Lambda表达式的基本语法如下:

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

其中,capture是可选的,用于捕获外部变量;parameters是参数列表;return_type是返回类型;body是函数体。

下面是一些Lambda的用法示例:

  1. 无参数的Lambda表达式:
[]() { 
    // Lambda body
};
  1. 带参数的Lambda表达式:
[](int x, int y) {
    // Lambda body
};
  1. 带返回值的Lambda表达式:
[](int x, int y) -> int {
    // Lambda body
    return x + y;
};
  1. 捕获外部变量的Lambda表达式:
int x = 5;
[y]() {
    // Lambda body
    std::cout << y << std::endl;
};

在Lambda表达式中,可以使用捕获列表来捕获外部变量。捕获列表可以有以下几种形式:

  • [var]:值捕获,将外部变量var的值复制到Lambda表达式中;
  • [&var]:引用捕获,将外部变量var作为引用传递给Lambda表达式;
  • [=]:默认值捕获,自动推导捕获列表中的变量,并按值捕获;
  • [&]:默认引用捕获,自动推导捕获列表中的变量,并按引用捕获。

Lambda表达式在C++11中引入了一种更简洁、灵活的函数定义方式,使得代码更加清晰和易读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值