c++的functor如何配合STL使用

   2024-10-01 8060
核心提示:在C++中,functor是一种行为类似函数的对象,可以像函数一样被调用。STL(Standard Template Library)中的很多算法和容器都可以

在C++中,functor是一种行为类似函数的对象,可以像函数一样被调用。STL(Standard Template Library)中的很多算法和容器都可以接受functor作为参数,可以通过functor来自定义算法的行为。

以下是一些使用functor配合STL的示例:

使用functor排序vector:
#include <iostream>#include <vector>#include <algorithm>// 定义一个比较函数对象struct Compare {    bool operator()(int a, int b) {        return a < b;    }};int main() {    std::vector<int> vec = {5, 2, 8, 3, 1};    // 使用自定义的比较函数对象对vector进行排序    std::sort(vec.begin(), vec.end(), Compare());    for (int num : vec) {        std::cout << num << " ";    }    return 0;}
使用functor进行自定义转换:
#include <iostream>#include <vector>#include <algorithm>// 定义一个转换函数对象struct Square {    int operator()(int num) {        return num * num;    }};int main() {    std::vector<int> vec = {1, 2, 3, 4, 5};    // 使用自定义的转换函数对象对vector中的元素进行平方操作    std::transform(vec.begin(), vec.end(), vec.begin(), Square());    for (int num : vec) {        std::cout << num << " ";    }    return 0;}

通过使用functor,可以方便地在STL中自定义算法的行为,使代码更加灵活和可重用。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号