SGI

pointer_to_binary_function<Arg1, Arg2, Result>

分类:函数对象、适配器 组件类型:类型

说明

Pointer_to_binary_function是一个 函数对象 适配器,它允许函数指针Result (*f)(Arg1, Arg2)被视为一个 可适用的二元函数。即:如果Fpointer_to_binary_function<Arg1, Arg2, Result>由底层函数指针初始化的f类型为Result (*)(Arg1, Arg2),则F(x, y)调用函数f(x, y)。与f的区别F在于pointer_to_binary_function是一个 可适用的二元函数,它定义嵌套typedefsfirst_argument_type, second_argument_typeresult_type.

请注意,类型为Result (*)(Arg1, Arg2)是一个完美的 二元函数 对象,并且可以传递给期望参数为 二元函数 的 STL 算法。使用该唯一的理由pointer_to_binary_functionclass 是如果您需要在需要 可适用的二元函数 的上下文中使用普通函数,例如,作为函数对象适配器的参数。

大多数情况下,您不需要声明类型为pointer_to_binary_function的对象。几乎总可以用ptr_fun函数构建一个。

示例

以下代码片段找到列表中第一个等于"OK"的字符串。它使用标准库函数strcmp作为函数对象适配器的参数,因此它必须首先使用pointer_to_binary_function适配器给出strcmp可适用的二元函数 接口。
list<char*> L;
...
list<char*>::iterator item = 
              find_if(L.begin(), L.end(),
                      not1(binder2nd(ptr_fun(strcmp), "OK")));

定义

在标准头 functional 中定义,在非标准向后兼容头 function.h 中定义。

模板参数

参数 说明 默认值
Arg1 函数对象的第一个参数类型  
Arg2 函数对象的第二个参数类型  
Result 函数对象的返回类型  

模型

可适用的二元函数

类型要求

公有基类

binary_function<Arg1, Arg2, Result>

成员

成员 定义位置 说明
first_argument_type 可适用的二元函数 第一个参数的类型Arg1.
second_argument_type 可适用的二元函数 第二个参数的类型Arg2
result_type 可适用的二元函数 返回类型的类型Result
Result operator()(Arg1 x, Arg2 y) 二元函数 函数调用运算符。
pointer_to_binary_function(Result (*f)(Arg1, Arg2)) pointer_to_binary_function 见下文。
pointer_to_binary_function() pointer_to_binary_function 见下文。
template <class Arg1, class Arg2, class Result>
pointer_to_unary_function<Arg1, Arg2, Result> 
ptr_fun(Result (*x)(Arg1, Arg2));
pointer_to_binary_function 见下文。

新成员

这些成员未定义在自适应二元函数需求中,但是特定于pointer_to_binary_function.
成员 说明
pointer_to_binary_function(Result (*f)(Arg1, Arg2)) 构造函数。创建一个pointer_to_binary_function底层函数为f.
pointer_to_binary_function() 默认构造函数。这将创建一个pointer_to_binary_function其没有底层函数,因此实际上无法调用。
template <class Arg1, class Arg2, class Result>
pointer_to_unary_function<Arg1, Arg2, Result> 
ptr_fun(Result (*x)(Arg1, Arg2));
如果f类型为Result (*)(Arg1, Arg2)然后ptr_fun(f)相当于pointer_to_binary_function<Arg1,Arg2,Result>(f),但更方便。这是一个全局函数,而不是成员函数。

注意

另请参见

pointer_to_unary_function, ptr_fun, 自适应二元函数
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc.保留所有权利。 TrademarkInformation