SGI

binary_negate<AdaptableBinaryPredicate>

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

说明

Binary_negate是一个函数对象适配器:它是一个可定制二元谓词,表示某些其他可定制二元谓词的逻辑否定。即如果f是一个类的对象binary_negate<AdaptableBinaryPredicate>,则存在一个对象pred属于类AdaptableBinaryPredicate,这样f(x,y)总是返回与!pred(x,y)相同的值。很少有理由直接构建一个binary_negate;它几乎总是更容易使用辅助函数not2.

示例

找到字符串中既不是' '也不是'\n'.
char str[MAXLEN];
...
const char* wptr = find_if(str, str + MAXLEN,
                           compose2(not2(logical_or<bool>()),
                                    bind2nd(equal_to<char>(), ' '),
                                    bind2nd(equal_to<char>(), '\n')));
assert(wptr == str + MAXLEN || !(*wptr == ' ' || *wptr == '\n')); 

的第一个字符

定义

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

模板参数 说明 参数
AdaptableBinaryPredicate 默认值binary_negate函数对象类型,用于逻辑否定。  

模型

Adaptable Binary Predicate

类型要求

AdaptableBinaryPredicate必须是Adaptable Binary Predicate的一个模型。

公共基类

binary_function<AdaptableBinaryPredicate::first_argument_type,
                AdaptableBinaryPredicate::second_argument_type,
                bool>

成员

成员 定义位置 说明
first_argument_type Adaptable Binary Function 第一个参数的类型AdaptableBinaryPredicate::first_argument_type
second_argument_type Adaptable Binary Function 第二个参数的类型AdaptableBinaryPredicate::second_argument_type
result_type Adaptable Binary Function 结果的类型bool
binary_negate(const AdaptableBinaryPredicate& pred)
binary_negate 见下文。
template <class AdaptableBinaryPredicate>
binary_negate<AdaptableBinaryPredicate>
not2(const AdaptableBinaryPredicate& pred);
binary_negate 见下文。

新成员

这些成员未在Adaptable Binary Predicate要求中定义,但特定于binary_negate.
成员 说明
binary_negate(const AdaptableBinaryPredicate& pred)
构造函数。创建一个binary_negate<AdaptableBinaryPredicate>,其基础谓词是pred.
template <class AdaptableBinaryPredicate>
binary_negate<AdaptableBinaryPredicate>
not2(const AdaptableBinaryPredicate& pred);
如果p为类型AdaptableBinaryPredicate,则not2(p)等同于binary_negate<AdaptableBinaryPredicate>(p),但更方便。这是一个全局函数,而不是成员函数。

说明

另请参见

函数对象概览AdaptablePredicatePredicateunary_negate, unary_compose, binary_compose
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc.保留所有权利。 TrademarkInformation