unary_negate<AdaptablePredicate>
描述
Unary_negate是一个函数对象适配器:它是一个可适配谓词,表示另一个可适配谓词的逻辑否定。也就是说:如果f是类unary_negate<AdaptablePredicate>的对象,那么存在一个类pred的对象AdaptablePredicate使得f(x)总是返回与!pred(x)相同的值。[1] 很少有理由直接构造unary_negate;使用辅助函数not1.
几乎总是更容易。
示例list<int> L;
...
list<int>::iterator in_range =
find_if(L.begin(), L.end(),
not1(compose2(logical_and<bool>(),
bind2nd(greater_equal<int>(), 1),
bind2nd(less_equal<int>(), 10))));
assert(in_range == L.end() || !(*in_range >= 1 && *in_range <= 10));
在列表中找到第一个不在 1 到 10 范围内的元素。
定义
模板参数 |
描述 |
参数 |
AdaptablePredicate
|
默认值unary_negate此函数对象的类型, |
|
是其逻辑否定的对象。
模型
可适配谓词
AdaptablePredicate类型要求
公有基类
参见下文。
新成员unary_negate.
成员 |
描述 |
unary_negate(const AdaptablePredicate& pred)
|
这些成员未在可适配谓词要求中定义,而是特定于unary_negate<AdaptablePredicate>构造函数。创建一个pred.
|
template <class AdaptablePredicate>
unary_negate<AdaptablePredicate>
not1(const AdaptablePredicate& pred);
|
其底层谓词为如果pAdaptablePredicate的类型为那么not1(p)等价于unary_negate<AdaptablePredicate>(p) |
,但更方便。这是一个全局函数,而不是成员函数。
注释unary_negate[1] 严格来说,是冗余的。它可以使用函数对象logical_not和适配器.
unary_compose
构造。另请参见, 和适配器, 函数对象概述,可适配谓词,谓词,
binary_negate
binary_compose