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

c++ lambda

作者:昨夜的风   发布日期:2026-05-04   浏览:27

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

int main() {
    // 定义一个简单的lambda表达式,用于打印消息
    auto print_message = []() {
        std::cout << "Hello, Lambda!" << std::endl;
    };

    // 调用lambda表达式
    print_message();

    // 定义一个带有参数的lambda表达式,用于计算两个数的和
    auto add = [](int a, int b) -> int {
        return a + b;
    };

    // 使用lambda表达式计算和并打印结果
    std::cout << "Sum: " << add(3, 5) << 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 << " ";
    });
    std::cout << std::endl;

    // 定义一个捕获外部变量的lambda表达式
    int factor = 2;
    auto multiply_by_factor = [factor](int x) {
        return x * factor;
    };

    // 使用捕获外部变量的lambda表达式
    std::cout << "Multiply by factor: " << multiply_by_factor(5) << std::endl;

    return 0;
}

解释说明:

  1. 定义简单的lambda表达式

    auto print_message = []() {
        std::cout << "Hello, Lambda!" << std::endl;
    };

    这里定义了一个不带参数的lambda表达式,它只执行打印操作。[]表示没有捕获任何外部变量。

  2. 带有参数的lambda表达式

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

    这个lambda表达式接受两个整数参数并返回它们的和。-> int是返回类型说明符,虽然可以省略,但显式声明返回类型可以提高代码的可读性。

  3. 使用lambda表达式作为函数参数

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

    这里将lambda表达式作为std::for_each的第三个参数,用于遍历并打印std::vector中的每个元素。

  4. 捕获外部变量的lambda表达式

    int factor = 2;
    auto multiply_by_factor = [factor](int x) {
        return x * factor;
    };

    这个lambda表达式捕获了外部变量factor,并在其内部使用。[factor]表示按值捕获factor,即在lambda表达式中使用的是factor的一个副本。

通过这些示例,你可以看到C++中的lambda表达式非常灵活,可以用于各种场景,包括简单的函数替代、复杂的算法实现以及捕获外部变量等。

上一篇:c++ set

下一篇:c++在线编程

大家都在看

c++闭包

c++向上取整的代码

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

c++ 注释

c++如何判断素数

c++怎么输入字符串

c++ functional

c++框架代码

c++格式化字符串

c++ orm框架

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

Laravel 中文站