c++ lamda表达式

Lambda表达式是C++11引入的特性,用于创建匿名函数,常见于函数式编程和STL算法。其基本语法包括捕获列表、参数列表、返回类型和函数体。例如,一个Lambda表达式可用于遍历整数数组并平方每个元素。Lambda表达式提高了代码的简洁性和可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++ Lambda表达式是C++11引入的一种函数对象,它提供了一种方便、灵活的方式来定义匿名函数。Lambda表达式常用于函数式编程风格和STL算法中。

Lambda表达式的基本语法如下:

[capture-list](parameter-list) -> return-type { body }
  • capture-list:捕获列表,用于指定外部变量的访问方式。可以省略或者包含一个或多个以逗号分隔的捕获项。

    • 捕获项可以是按值捕获(=)或按引用捕获(&)。
    • 按值捕获会复制捕获的变量的值到Lambda表达式内部,而按引用捕获则是引用外部变量。
    • 还可以使用捕获初始化器(=&后面加变量名和初始值)来指定捕获的变量及其初始值。
  • parameter-list:参数列表,指定Lambda表达式的参数。与普通函数的参数列表类似。

  • return-type:返回类型,指定Lambda表达式的返回类型。可以省略,让编译器自动推断返回类型。

  • body:函数体,指定Lambda表达式的执行逻辑。可以包含任意合法的C++语句。

以下是一个简单的Lambda表达式示例,用于对一个整数数组中的元素进行平方运算并打印结果:

#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
    std::vector<int> nums = {1, 2, 3, 4, 5};

    // 使用Lambda表达式对数组元素进行平方运算并打印结果
    std::for_each(nums.begin(), nums.end(), [](int num) {
        int square = num * num;
        std::cout << square << " ";
    });

    return 0;
}

在上述示例中,我们使用了Lambda表达式 [](int num) {...}std::for_each() 算法进行参数化。Lambda表达式使用一个参数 num 来接收每个数组元素的值,并计算平方,然后通过 std::cout 打印结果。

Lambda表达式在现代C++编程中非常常用,它能够简化代码、提高可读性,并且可以与标准库中的算法和容器等一起使用。您可以根据具体的需求来灵活地使用Lambda表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alen.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值