Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ lambda 表达式

作者:平凡中的不凡   发布日期:2025-03-13   浏览:355

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

int main() {
    // 定义一个简单的 lambda 表达式,它接受两个整数并返回它们的和
    auto add = [](int a, int b) -> int {
        return a + b;
    };

    std::cout << "3 + 4 = " << add(3, 4) << std::endl;

    // 使用 lambda 表达式作为 std::for_each 的参数,对 vector 中的每个元素进行操作
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    std::for_each(numbers.begin(), numbers.end(), [](int n) {
        std::cout << n * n << " ";
    });
    std::cout << std::endl;

    // 使用带有捕获列表的 lambda 表达式
    int factor = 10;
    auto multiplyByFactor = [factor](int a) -> int {
        return a * factor;
    };

    std::cout << "5 * " << factor << " = " << multiplyByFactor(5) << std::endl;

    return 0;
}

解释说明:

  1. 简单的 lambda 表达式:

    auto add = [](int a, int b) -> int {
        return a + b;
    };

    这是一个简单的 lambda 表达式,它接受两个整数参数 ab,并返回它们的和。[] 是捕获列表,这里为空表示不捕获任何外部变量。

  2. 使用 lambda 表达式作为回调函数:

    std::for_each(numbers.begin(), numbers.end(), [](int n) {
        std::cout << n * n << " ";
    });

    这里我们使用 lambda 表达式作为 std::for_each 的回调函数,对 numbers 向量中的每个元素进行平方运算,并输出结果。

  3. 带有捕获列表的 lambda 表达式:

    int factor = 10;
    auto multiplyByFactor = [factor](int a) -> int {
        return a * factor;
    };

    这个 lambda 表达式捕获了外部变量 factor,并在 lambda 内部使用它来乘以传入的参数 a。捕获列表 [factor] 表示将 factor 按值捕获到 lambda 中。

通过这些例子,你可以看到 lambda 表达式的灵活性和强大功能,特别是在需要简短、匿名函数的地方。

上一篇:c++如何保留小数点后两位

下一篇:c++绝对值函数

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站