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. |
| Заголовочный файл <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.
[править] Член типов
| Type
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 (public функция-член) |
| 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. (public функция-член) |
зЬй :: 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. |
зЬй :: 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'; }
Вывод:
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. (шаблон класса) | |