unary_function跟binary_function详解
来源:互联网 发布:数据结构算法题 编辑:程序博客网 时间:2024/05/16 06:38
转自:http://www.myexception.cn/cpp/1994728.html
unary_function和binary_function详解
1.unary_function和binary_function介绍
1.1 unary_function介绍
unary_function可以作为一个一元函数对象的基类,它只定义了参数和返回值的类型,本身并不重载()操作符,这个任务应该交由派生类去完成。
1.2 unary_function源码
1 template <class Arg, class Result>2 struct unary_function {3 typedef Arg argument_type;4 typedef Result result_type;5 };
()重载函数的参数类型
result_type第二个模板参数(Result)()重载函数的返回值类型
1.3 例子
1 // unary_function example 2 #include <iostream> // std::cout, std::cin 3 #include <functional> // std::unary_function 4 5 struct IsOdd : public std::unary_function<int,bool> { 6 bool operator() (int number) {return (number%2!=0);} 7 }; 8 9 int main () {10 IsOdd IsOdd_object;11 IsOdd::argument_type input;12 IsOdd::result_type result;13 14 std::cout << "Please enter a number: ";15 std::cin >> input;16 17 result = IsOdd_object (input);18 19 std::cout << "Number " << input << " is " << (result?"odd":"even") << ".\n";20 21 return 0;22 }
2. binary_function介绍
2.1 binary_function介绍
binary_function可以作为一个二元函数对象的基类,它只定义了参数和返回值的类型,本身并不重载()操作符,这个任务应该交由派生类去完成。
2.2 binary_function源码
1 template <class Arg1, class Arg2, class Result>2 struct binary_function {3 typedef Arg1 first_argument_type;4 typedef Arg2 second_argument_type;5 typedef Result result_type;6 };
()重载函数的第一个参数类型
second_argument_type第一个模板参数 (Arg2)()重载函数的第二个参数类型
return_type第一个模板参数(Result)()重载函数的返回值类型
2.3 例子
1 // binary_function example 2 #include <iostream> // std::cout, std::cin 3 #include <functional> // std::binary_function 4 5 struct Compare : public std::binary_function<int,int,bool> { 6 bool operator() (int a, int b) {return (a==b);} 7 }; 8 9 int main () {10 Compare Compare_object;11 Compare::first_argument_type input1;12 Compare::second_argument_type input2;13 Compare::result_type result;14 15 std::cout << "Please enter first number: ";16 std::cin >> input1;17 std::cout << "Please enter second number: ";18 std::cin >> input2;19 20 result = Compare_object (input1,input2);21 22 std::cout << "Numbers " << input1 << " and " << input2;23 if (result)24 std::cout << " are equal.\n";25 else26 std::cout << " are not equal.\n";27 28 return 0;29 }
0 0
- unary_function跟binary_function详解
- 【C++ API】binary_function与unary_function使用详解
- std::unary_function 和 std::binary_function.
- [C/C++标准库]_[初级]_[unary_function 和 binary_function]
- [C/C++标准库]_[初级]_[unary_function 和 binary_function]
- binary_function
- 为什么在定义能够使用函数适配器的函数的时候要继承一下std::unary_function或者std::binary_function
- std::unary_function
- unary_function和binay_function
- binary_function函数用法
- 详解制作跟文件系统
- binary_function的用处(转)
- STL中的二元函数binary_function
- linux 下跟文件系统详解
- msdn里的C++unary_function的例子
- 从binary_function类继承的作用
- 从binary_function类继承的作用
- stl 中 std::binary_function 的使用
- 【Leet Code】31. Next Permutation---Medium
- PLSQL 实现split
- Yii2自定义Widget,百度编辑器
- 数据库连接池原理
- MAKEFILE
- unary_function跟binary_function详解
- MongoDB、HandlerSocket和MySQL性能测试及其结果分析
- lisp活着
- web.xml详细介绍
- Android 图片和文字布局,RadioButton有些地方比GridView好用些吧
- oracle 数据恢复
- Java Collection
- android网络编程之——客户端上传信息的代码
- LeetCode:Reverse Bits