STL内建仿函数

分类 : 算术仿函数、关系仿函数、逻辑仿函数
用法 :
1 用法和一般函数完全相同
2 需要包含头文件 #include
注:三类仿函数的代码如下,其中的逻辑仿函数由于不常用,因此没有写代码进行验证

#include <iostream>
#include <vector>
#include <functional>
#include <algorithm>
using namespace std;
/*
1 算术仿函数:主要实现四则运算(其中negate是一元运算,其他都是二元运算)
2 仿函数原型(加减乘除、取模、取反)
    a template<class T> T plus<T>
    b template<class T> T minus<T>
    c template<class T> T multiplies<T>
    d template<class T> T divides<T>
    e template<class T> T modulus<T>
    f template<class T> T negate<T>
*/
void test01()
{
    negate<int> n;
    cout << n(50) << endl;
    
    plus<int> p;
    cout << p(20,39) << endl;
}

/*
2 关系仿函数:实现关系对比
    a template<class T> bool equal_to<T>
    b template<class T> bool not_equal_to<T>
    c template<class T> bool greater<T>
    d template<class T> bool greater_equal<T>
    e template<class T> bool less<T>
    f template<class T> bool less_equal<T>
*/

void test02()
{
    vector<int> v;
    v.push_back(4);
    v.push_back(1);
    v.push_back(3);
    v.push_back(5);
    v.push_back(2);

    sort(v.begin(), v.end(), greater<int>()); // 重点在这里
    cout << "排序后:";
    for(vector<int>::iterator it=v.begin(); it!=v.end(); it++)
    {
        cout << *it << " ";
    }
    cout << endl;
}

/*
3 逻辑仿函数:与、或、非
    a template<class T> bool logical_and<T>
    b template<class T> bool logical_or<T>
    c template<class T> bool logical_not<T>
*/
int main(int argc, char **argv)
{
    test01();
    test02();
    return 0;
}

相关推荐

  1. STL仿函数

    2024-07-13 09:22:01       25 阅读
  2. 函数对象

    2024-07-13 09:22:01       80 阅读
  3. C++算法——函数对象\谓词\仿函数

    2024-07-13 09:22:01       32 阅读
  4. Spark SQL函数

    2024-07-13 09:22:01       25 阅读
  5. Hive、MySQL、Oracle函数对照表

    2024-07-13 09:22:01       56 阅读
  6. STL之priority_queue的使用及其模拟实现+仿函数

    2024-07-13 09:22:01       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 09:22:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 09:22:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 09:22:01       62 阅读
  4. Python语言-面向对象

    2024-07-13 09:22:01       72 阅读

热门阅读

  1. 开源 Wiki 系统 InfoSphere 2024.01.1 发布

    2024-07-13 09:22:01       30 阅读
  2. macOS 的电源适配器设置

    2024-07-13 09:22:01       29 阅读
  3. PTA 7-14 畅通工程之局部最小花费问题

    2024-07-13 09:22:01       28 阅读
  4. Vue单路由的独享守卫怎么设置

    2024-07-13 09:22:01       28 阅读
  5. 代码随想录算法训练营第33天

    2024-07-13 09:22:01       26 阅读
  6. 总结:Hadoop高可用

    2024-07-13 09:22:01       29 阅读
  7. 使用Python进行音频处理:掌握音频世界的魔法

    2024-07-13 09:22:01       28 阅读
  8. ssh:(xshell)远程连接失败

    2024-07-13 09:22:01       25 阅读
  9. Hadoop 面试题(十一)

    2024-07-13 09:22:01       27 阅读
  10. 深入理解外观模式(Facade Pattern)及其实际应用

    2024-07-13 09:22:01       24 阅读
  11. MyBatis(17)MyBatis 如何处理枚举类型

    2024-07-13 09:22:01       22 阅读
  12. RIP 路由 3 个定时器的工作流程和 4 种防环方法

    2024-07-13 09:22:01       23 阅读