function template
<functional>

std::not2

template <class Predicate>  binary_negate<Predicate> not2 (const Predicate& pred);
返回二元函数对象的否定
构造一个二元函数对象(类型为 binary_negate),该对象返回 pred 的相反值(通过 operator ! 返回)。

它的定义与以下行为相同:
1
2
3
4
template <class Predicate> binary_negate<Predicate> not2 (const Predicate& pred)
{
  return binary_negate<Predicate>(pred);
}

参数

谓词
派生自 binary_function 的二进制函数对象。

返回值

一个行为与 pred 相反的二元函数对象。
参见 binary_negate

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// not2 example
#include <iostream>     // std::cout
#include <functional>   // std::not2, std::equal_to
#include <algorithm>    // std::mismatch
#include <utility>      // std::pair

int main () {
  int foo[] = {10,20,30,40,50};
  int bar[] = {0,15,30,45,60};
  std::pair<int*,int*> firstmatch,firstmismatch;
  firstmismatch = std::mismatch (foo, foo+5, bar, std::equal_to<int>());
  firstmatch = std::mismatch (foo, foo+5, bar, std::not2(std::equal_to<int>()));
  std::cout << "First mismatch in bar is " << *firstmismatch.second << '\n';
  std::cout << "First match in bar is " << *firstmatch.second << '\n';
  return 0;
}


First mismatch in bar is 0
First match in bar is 30


另见