El std::unary_negate() es un objeto de función contenedora que devuelve el complemento del predicado unario que contiene. Una función contenedora es una subrutina en una biblioteca de software o un programa de computadora cuyo objetivo principal es llamar a una segunda subrutina o una llamada al sistema con poco o ningún cálculo adicional. Un objeto de tipo unary_negate generalmente se construye usando la función std::not1() .
Archivo de cabecera:
#include <functional>
Sintaxis:
std::unary_negate<class T> variable_name(Object of class T);
Parámetros: la función std::unary_negate() acepta el objeto de función de predicado como parámetro y devuelve el complemento lógico del resultado generado al llamar a la función de predicado.
Valor devuelto: Devuelve el complemento lógico del resultado llamando a la función de predicado.
A continuación se muestra el programa para ilustrar la función std::unary_negate() :
Programa 1:
CPP
// C++ program to illustrate // std::unary_negate to find number // greater than equals 4 in arr[] #include <algorithm> #include <functional> #include <iostream> #include <vector> using namespace std; // Predicate function to find the // count of number greater than or // equals to 4 in array arr[] struct gfg : unary_function<int, bool> { // Function returns true if any // element is less than 4 bool operator()(int i) const { return i < 4; } }; // Driver Code int main() { // Declare vector vector<int> arr; // Insert value from 1-10 in arr for (int i = 1; i <= 10; ++i) { arr.push_back(i); } // Use unary_negate() to find the // count of number greater than 4 unary_negate<gfg> func((gfg())); // Print the count of number using // function count_if() cout << count_if(arr.begin(), arr.end(), func); return 0; }
7
Explicación: En el programa anterior, la array arr[] tiene elementos del 1 al 10 y el número de elementos que es mayor que igual a 4 es 7.
Programa 2:
CPP
// C++ program to illustrate // std::unary_negate to find number // greater than equals 4 in arr[] #include <algorithm> #include <functional> #include <iostream> #include <vector> using namespace std; // Given Structure struct IsOdd_class { // Predicate of this structure bool operator()(const int& x) const { return x % 2 == 1; } typedef int argument_type; } IsOdd_object; // Driver Code int main() { // Use unary_negate function to // to find the compliment of // predicate declare in structure // IsOdd_class unary_negate<IsOdd_class> IsEven_object( IsOdd_object); // Given array int arr[] = { 1, 1, 3, 9, 5 }; int cx; // count with respect to predicate // generated by unary_negate() cx = count_if(arr, arr + 5, IsEven_object); // Print the count cout << "There are " << cx << " elements with even values!" << endl; return 0; }
There are 0 elements with even values!
Referencia: http://www.cplusplus.com/reference/funcional/unary_negate/
Publicación traducida automáticamente
Artículo escrito por _anupam_kumar_krishnan_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA