Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

pointer_to_binary_function

类模板  <functional>

template <class Arg1, class Arg2, class Result> class pointer_to_binary_function;

从指针生成二元函数对象类
通过指向一个函数的指针生成一个二元函数对象类,该函数接受两个参数(Arg1和Arg2类型),并返回一个值(Result类型)。

pointer_to_binary_function通常用作类型。函数ptr_fun(也在header <functional>中定义)可以用来直接构造这种类型的对象。

该类派生自binary_function,通常定义为:
C++98
template <class Arg1, class Arg2, class Result>
  class pointer_to_binary_function : public binary_function <Arg1,Arg2,Result>
{
protected:
  Result(*pfunc)(Arg1,Arg2);
public:
  explicit pointer_to_binary_function ( Result (*f)(Arg1,Arg2) ) : pfunc (f) {}
  Result operator() (Arg1 x, Arg2 y) const
    { return pfunc(x,y); }
};

☲  成员



constructor
使用指向函数的指针构造一个二元函数对象类,该函数接受Arg1和Arg2类型的两个参数,并返回一个Result类型的值。

operator()
接受两个形参的成员函数,将它们传递给构造时使用的指针所指向的函数,并传递获得的返回值作为自己的返回值。


☣  示例



// pointer_to_binary_function example
#include <iostream>
#include <functional>
#include <algorithm>
#include <cmath>
using namespace std;

int main () {
  pointer_to_binary_function <double,double,double> PowObject (pow);
  double numbers[] = {1.0, 2.0, 3.0, 4.0, 5.0};
  double squares[5];
  transform (numbers, numbers+5, squares, bind2nd(PowObject,2) );
  for (int i=0; i<5; i++)
    cout << squares[i] << " ";
  cout << endl;
  return 0;
}

可能输出:
1 4 9 16 25

🍄  另请参阅



ptr_fun 将函数指针转换为函数对象(类模板)
pointer_to_unary_function 从指针生成一元函数对象类(类模板)
unary_function 一元函数对象基类 (类模板)

联系我们 免责声明 关于CandCplus 网站地图