一、unary_function的介绍

unary_function可以作为一个一元函数对象基类,它只定义参数返回值的类型,本身并不重载()操作符,这个任务应该交由派生类去完成。

源码

     template <class Arg, class Result> struct unary_function;template <class Arg, class Result>      // 1个参数,一个返回值struct unary_function {typedef Arg argument_type;typedef Result result_type;};

二、使用实例

// unary_function example
#include <iostream>     // std::cout, std::cin
#include <functional>   // std::unary_functionstruct IsOdd : public std::unary_function<int,bool> {bool operator() (int number) {return (number%2!=0);}
};int main () {IsOdd IsOdd_object;IsOdd::argument_type input;IsOdd::result_type result;std::cout << "Please enter a number: ";std::cin >> input;result = IsOdd_object (input);std::cout << "Number " << input << " is " << (result?"odd":"even") << ".\n";return 0;
}

三、binary_function介绍

binary_function可以作为一个二元函数对象基类,它只定义参数返回值的类型,本身并不重载()操作符,这个任务应该交由派生类去完成。

源码

     template <class Arg1, class Arg2, class Result> struct binary_function;template <class Arg1, class Arg2, class Result>struct binary_function {typedef Arg1 first_argument_type;typedef Arg2 second_argument_type;typedef Result result_type;};

四、使用实例

 #include <iostream>     // std::cout, std::cin#include <functional>   // std::binary_function          struct TCompareNumSize : public std::binary_function<int,int, int>{int operator() (int num1, int num2){return num1 < num2 ? num2 : num1;}};int main(){TCompareNumSize oCompareSize;int iMaxNum = oCompareSize(1,2);std::cout<<" 最大数是:"<<iMaxNum<<endl;return 0;}

参考:

https://www.cnblogs.com/blueoverflow/p/4738964.html

C++ binary_function与unary_function使用详解相关推荐

  1. STL中map和string, vector 用法详解

    1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...

  2. lower_bound和upper_bound详解

    lower_bound和upper_bound详解 两函数作用 可以对有序连续的空间进行二分查找. lower_bound默认查找大于等于某值所在连续空间的位置. upper_bound默认查找大于某 ...

  3. iOS runtime 底层详解、内部原理、场景应用

    前言学:位域和共用体 一:isa指针--runtime之前的学习 1.1:苹果应用的按位或.按位与 二:类对象信息 2.1:类对象信息:rw_t 2.2:类对象信息:方法缓存(很关键) 2.2:类对象 ...

  4. for_each使用方法详解

    Abstract 之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effec ...

  5. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  6. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  7. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  8. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  9. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

最新文章

  1. Java调用cmd命令 打开一个站点
  2. Vue 脚手架||Vue 脚手架的基本用法
  3. Solr安装步骤 + dataimport导入数据配置
  4. 【JZOJ4817】【NOIP2016提高A组五校联考4】square
  5. 交易记录表设计注意点
  6. Center OS 7
  7. Cocos2d-x 整理 SDK,易接流程(写给自己看的
  8. •SVG g、defs、symbol和use元素详解
  9. 命令行测速工具 linux,Linux命令行下常用的网络测速工具
  10. uniapp使用IPA苹果支付
  11. 在线ASCII转换HEX
  12. PTA 数据结构与算法 7-29 修理牧场
  13. 计算机视觉中的MAP的理解(mean average precision)
  14. 珠海:IT应用向政府投资行业集中
  15. ATI六维力传感器完整使用教程(婴儿式教学!!!!)
  16. Mac 电脑python 升级3.7版本
  17. SnapKit安装与使用
  18. 赛门铁克:微软杀毒软件Forefront技术不过关
  19. solidworks装配体改为柔性_Y型钣金通风管道用SOLIDWORKS怎么建模?
  20. uniapp 微信小程序中授权用户手机号码

热门文章

  1. 宝塔需在php设置中安装redis扩展,宝塔安装配置redis说明
  2. Android点击空白处隐藏软键盘
  3. 63GB,2.35 亿 Twitter 用户的姓名、邮件在裸奔……
  4. 排水管不能穿越计算机房,【华信案例】某省电信BBU机房给排水管道穿越解决方案...
  5. hdu oj 1201:18岁生日
  6. 古老的基于亮度平均值的自动Gamma校正算法。
  7. Discuz如何设置腾讯微博来源
  8. 点线交织-拼图-简单
  9. Google共码未来 与 C站 创造者的经历
  10. 小数用二进制如何表示