首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在std :: for_each中调用std :: function

在C++中,std::for_each是一个算法,用于对指定范围内的元素执行特定操作。std::function是一个通用的可调用对象包装器,可以存储任何可调用目标(如函数、lambda表达式或bind表达式)。

要在std::for_each中调用std::function,您需要提供一个函数或lambda表达式作为操作。以下是一个简单的示例,说明如何在std::for_each中使用std::function

代码语言:cpp
复制
#include<algorithm>
#include<functional>
#include<iostream>
#include<vector>

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

    // 定义一个std::function对象,用于存储要在std::for_each中调用的函数
    std::function<void(int)> print_number = [](int n) {
        std::cout << n << " ";
    };

    // 使用std::for_each算法和print_number函数对数字向量进行操作
    std::for_each(numbers.begin(), numbers.end(), print_number);

    return 0;
}

在这个示例中,我们使用std::function对象print_number存储了一个lambda表达式。然后,我们使用std::for_each算法对numbers向量进行操作,对每个元素调用print_number函数。

请注意,这个示例中的std::function对象是可选的。您也可以直接在std::for_each中使用lambda表达式,如下所示:

代码语言:cpp
复制
std::for_each(numbers.begin(), numbers.end(), [](int n) {
    std::cout << n << " ";
});

总之,要在std::for_each中调用std::function,您需要提供一个可调用目标(如函数、lambda表达式或bind表达式),并将其传递给std::for_each算法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券