C++ binary_function与unary_function使用详解
一、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使用详解相关推荐
- STL中map和string, vector 用法详解
1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...
- lower_bound和upper_bound详解
lower_bound和upper_bound详解 两函数作用 可以对有序连续的空间进行二分查找. lower_bound默认查找大于等于某值所在连续空间的位置. upper_bound默认查找大于某 ...
- iOS runtime 底层详解、内部原理、场景应用
前言学:位域和共用体 一:isa指针--runtime之前的学习 1.1:苹果应用的按位或.按位与 二:类对象信息 2.1:类对象信息:rw_t 2.2:类对象信息:方法缓存(很关键) 2.2:类对象 ...
- for_each使用方法详解
Abstract 之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL) 曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effec ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 通俗易懂word2vec详解词嵌入-深度学习
https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...
- 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法
深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...
最新文章
- Java调用cmd命令 打开一个站点
- Vue 脚手架||Vue 脚手架的基本用法
- Solr安装步骤 + dataimport导入数据配置
- 【JZOJ4817】【NOIP2016提高A组五校联考4】square
- 交易记录表设计注意点
- Center OS 7
- Cocos2d-x 整理 SDK,易接流程(写给自己看的
- •SVG g、defs、symbol和use元素详解
- 命令行测速工具 linux,Linux命令行下常用的网络测速工具
- uniapp使用IPA苹果支付
- 在线ASCII转换HEX
- PTA 数据结构与算法 7-29 修理牧场
- 计算机视觉中的MAP的理解(mean average precision)
- 珠海:IT应用向政府投资行业集中
- ATI六维力传感器完整使用教程(婴儿式教学!!!!)
- Mac 电脑python 升级3.7版本
- SnapKit安装与使用
- 赛门铁克:微软杀毒软件Forefront技术不过关
- solidworks装配体改为柔性_Y型钣金通风管道用SOLIDWORKS怎么建模?
- uniapp 微信小程序中授权用户手机号码