std::binary_negate
来自cppreference.com
< cpp | utility | functional
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <functional>
|
||
| template< class Predicate > struct binary_negate : |
(至 C++11) | |
| template< class Predicate > struct binary_negate; |
(C++11 起) | |
binary_negate是一个包装函数对象返回其持有的二元谓词的补.Original:
binary_negate is a wrapper function object returning the complement of the binary predicate it holds.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
二元谓词类型必须定义两个的成员类型
first_argument_type和second_argument_type,可转换谓词的参数类型。从std::owner_less的函数对象,std::ref,std::cref,std::plus,std::minus,std::multiplies,std::divides,std::modulus,std::equal_to,std::not_equal_to,std::greater,std::less,std::greater_equal,std::less_equal,std::logical_not,std::logical_or,std::bit_and,std::bit_or,std::bit_xor,std::mem_fn,std::map::value_comp,std::multimap::value_comp,std::function ,或调用std::not2这些定义的类型,函数对象来自过时的std::binary_function. Original:
The binary predicate type must define two member types,
first_argument_type and second_argument_type, that are convertible to the predicate's parameter types. The function objects obtained from std::owner_less, std::ref, std::cref, std::plus, std::minus, std::multiplies, std::divides, std::modulus, std::equal_to, std::not_equal_to, std::greater, std::less, std::greater_equal, std::less_equal, std::logical_not, std::logical_or, std::bit_and, std::bit_or, std::bit_xor, std::mem_fn, std::map::value_comp, std::multimap::value_comp, std::function, or from a call to std::not2 have these types defined, as are function objects derived from the deprecated std::binary_function. The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
binary_negate对象很容易构造辅助函数std::not2.Original:
binary_negate objects are easily constructed with helper function std::not2.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 会员类型
| 类型
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
first_argument_type
|
Predicate::first_argument_type |
second_argument_type
|
Predicate::second_argument_type |
result_type
|
bool |
[编辑] 成员函数
| (constructor) |
constructs a new binary_negate object with the supplied predicate (公共成员函数) |
| operator() |
返回的逻辑补码的呼叫的结果,所存储的谓词 Original: returns the logical complement of the result of a call to the stored predicate The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (公共成员函数) |
的std :: binary_negate ::Original:std::binary_negate::The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.binary_negate
Original:
std::binary_negate::
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
| explicit binary_negate( Predicate const& pred ); |
||
Constructs a binary_negate function object with the stored predicate pred.
Parameters
| pred | - | 谓词函数对象
Original: predicate function object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
的std :: binary_negate ::Original:std::binary_negate::The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.operator()
Original:
std::binary_negate::
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
| bool operator()( first_argument_type const& x, second_argument_type const& y ) const; |
||
Returns the logical complement of the result of calling pred(x, y).
Parameters
| x | - | 第一个参数传递到谓词
Original: first argument to pass through to predicate The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| y | - | 第二个参数传递到谓词
Original: second argument to pass through to predicate The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Return value
The logical complement of the result of calling pred(x, y).
[编辑] 为例
#include <algorithm> #include <functional> #include <iostream> #include <vector> struct same : std::binary_function<int, int, bool> { bool operator()(int a, int b) const { return a == b; } }; int main() { std::vector<int> v1; std::vector<int> v2; for (int i = 0; i < 10; ++i) v1.push_back(i); for (int i = 0; i < 10; ++i) v2.push_back(10 - i); std::vector<bool> v3(v1.size()); std::binary_negate<same> not_same((same())); std::transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), not_same); /* C++11 solution: // Use std::function<bool (int, int)> std::function<bool (int, int)> not_same = [](int x, int y)->bool{ return !same()(x, y); }; std::transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), not_same); */ std::cout.setf(std::ios_base::boolalpha); for (int i = 0; i < 10; ++i) std::cout << v1[i] << ' ' << v2[i] << ' ' << v3[i] << '\n'; }
Output:
0 10 true 1 9 true 2 8 true 3 7 true 4 6 true 5 5 false 6 4 true 7 3 true 8 2 true 9 1 true
[编辑] 另请参阅
| (过时了) |
适配器兼容的二元函数的基类 Original: adaptor-compatible binary function base class The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) |
| (C++11) |
包装任何类型的可调用对象与指定的函数调用签名 Original: wraps callable object of any type with specified function call signature The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) |
| 构造自定义std::binary_negate对象 Original: constructs custom std::binary_negate object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数模板) | |
| (过时了) |
创建适配器兼容功能的包装对象从一个指针到函数 Original: creates an adaptor-compatible function object wrapper from a pointer to function The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数模板) |
| 包装函数对象返回的补一元谓词其持有的 Original: wrapper function object returning the complement of the unary predicate it holds The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) | |