unary_function和binary_function详解
1.unary_function和binary_function介绍
1.1 unary_function介绍
unary_function可以作为一个一元函数对象的基类,它只定义了参数和返回值的类型,本身并不重载()操作符,这个任务应该交由派生类去完成。
1.2 unary_function源码
template <class Arg, class Result>
struct unary_function {
typedef Arg argument_type;
typedef Result result_type;
};
| 成员类型 | 定义 | 注释 |
|---|---|---|
| argument_type | 第一个模板参数 (Arg) | ()重载函数的参数类型 |
| result_type | 第二个模板参数(Result) | ()重载函数的返回值类型 |
1.3 例子
// unary_function example
#include <iostream> // std::cout, std::cin
#include <functional> // std::unary_function struct IsOdd : public std::unary_function<int,bool> {
bool operator() (int number) {return (number%!=);}
}; 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 ;
}
2. binary_function介绍
2.1 binary_function介绍
binary_function可以作为一个二元函数对象的基类,它只定义了参数和返回值的类型,本身并不重载()操作符,这个任务应该交由派生类去完成。
2.2 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;
};
| 成员类型 | 定义 | 注释 |
|---|---|---|
| first_argument_type | 第一个模板参数(Arg1) | ()重载函数的第一个参数类型 |
| second_argument_type | 第一个模板参数 (Arg2) | ()重载函数的第二个参数类型 |
| return_type | 第一个模板参数(Result) | ()重载函数的返回值类型 |
2.3 例子
// binary_function example
#include <iostream> // std::cout, std::cin
#include <functional> // std::binary_function struct Compare : public std::binary_function<int,int,bool> {
bool operator() (int a, int b) {return (a==b);}
}; int main () {
Compare Compare_object;
Compare::first_argument_type input1;
Compare::second_argument_type input2;
Compare::result_type result; std::cout << "Please enter first number: ";
std::cin >> input1;
std::cout << "Please enter second number: ";
std::cin >> input2; result = Compare_object (input1,input2); std::cout << "Numbers " << input1 << " and " << input2;
if (result)
std::cout << " are equal.\n";
else
std::cout << " are not equal.\n"; return ;
}
unary_function和binary_function详解的更多相关文章
- for_each使用方法详解[转]
for_each使用方法详解[转] Abstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL)曾經討論過for_each(),不過當時功力尚淺,只談 ...
- for_each的各种情况下的使用详解
原创作者:http://oomusou.cnblogs.com 配合<C++ Template>(简体中文)使用 http://download.csdn.net/detail/qq239 ...
- for_each使用方法详解
for_each使用方法详解[转] Abstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL)曾經討論過for_each(),不過當時功力尚淺, ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
随机推荐
- 排序 第K大等问题总结
在公司面试时,当场写排序比较多,虽然都是老掉牙的问题,还是要好好准备下 快速排序,以第一个元素为关键词比较,每次比较结束,关键词都会去到最终位置上 //7 3 2 9 8 3 4 6 //7 3 2 ...
- ORACLE用户的加锁、解锁
在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作.下面是具体的过程: 默认的scott用户是 ...
- STM32F4XX启动文件分析
STM32F4XX启动文件分析 - STM32F4XX启动文件下载地址 导读:STM32F4XX启动文件的作用 初始化设置SP,即栈指针 初始化设置PC指针指向复位中断处理函数,即PC = Reset ...
- 确保nginx安全的10个技巧
Nginx是当今最流行的Web服务器之一.它为世界上7%的web流量提供服务而且正在以惊人的速度增长.它是个让人惊奇的服务器,我愿意部署它. 下面是一个常见安全陷阱和解决方案的列表,它可以辅助来确保你 ...
- php端安装rabbitmq-c
php端安装rabbitmq-c url:https://github.com/alanxz/rabbitmq-c cd rabbitmq-c**** ./configure --prefix=/us ...
- ElasticSearch读取查询结果(search)
本文转载自:http://blog.csdn.net/wangxiaotongfan/article/details/46531729?locationNum=6 在es中所有的查询结果都会保存在Se ...
- windows平台最简单的rtmp/hls流媒体服务器
feature: rtmp/hls live server for windows, double click to run,don't need config. run and quit: doub ...
- 在不适用fixed的前提下,当内容较少时footer固定在页面底部
使用css,参考国外的一个解决方法: http://ryanfait.com/resources/footer-stick-to-bottom-of-page/ How to use the CSS ...
- ETL开源工具kettle学习笔记
一 Kettle配置与部署 参考1:http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html 1.下载kettle ...
- Rhythmk 一步一步学 JAVA(4):Spring MVC -之拦截器
1.实现拦截器类(myInterceptor): package com.rhythmk.Interceptor; import javax.servlet.http.HttpServletReque ...