El std::less es un miembro de la clase funcional (<funcional.h>) que se utiliza para realizar comparaciones. Se define como una clase de objeto de función para una comparación inferior a la desigualdad que devuelve un valor booleano según la condición. Esto se puede utilizar para cambiar la funcionalidad de la función dada. Se puede usar con varios algoritmos estándar como sort, lower_bound , etc.
Archivo de cabecera:
#include <functional.h>
Clase de plantilla:
template <class T> struct less { // Declaration of the less operation bool operator() (const T& x, const T& y) const { return x < y; } // Type of first parameter typedef T first_argument_type; // Type of second parameter typedef T second_argument_type; // The result is returned // as bool type typedef bool result_type; };
Sintaxis:
std::less()
Parámetro: Esta función acepta el tipo de los argumentos T , como parámetro, a comparar por la llamada funcional.
Tipo de devolución: devuelve un valor booleano según la condición (deje que a y b sean 2 elementos):
- Verdadero: Si a es menor que b.
- Falso: Si a es mayor que b.
A continuación se muestra la ilustración de std::less en C++:
Programa 1:
// C++ program to illustrate // std::less function #include <algorithm> #include <functional> #include <iostream> using namespace std; // Function to print array arr[] void printArray(int arr[], int N) { for (int i = 0; i < N; i++) { cout << arr[i] << ' '; } } // Driver Code int main() { int arr[] = { 26, 23, 21, 22, 28, 27, 25, 24 }; int N = sizeof(arr) / sizeof(arr[0]); // Sort the array in increasing order sort(arr, arr + N, less<int>()); // Print sorted array printArray(arr, N); return 0; }
21 22 23 24 25 26 27 28
Programa 2:
// C++ program to illustrate less #include <iostream> #include <algorithm> #include <functional> using namespace std; // Template template <typename A, typename B, typename U = std::less<int> > // Function to check if a < b or not bool f(A a, B b, U u = U()) { return u(a, b); } // Driver Code int main() { int X = 1, Y = 2; // If X is less than Y or not cout << std::boolalpha; cout << f(X, Y) << '\n'; X = 2, Y = -1; // If X is less than Y or not cout << f(X, Y) << '\n'; return 0; }
true false
Referencia: http://www.cplusplus.com/reference/funcional/less/
Publicación traducida automáticamente
Artículo escrito por akash_salvi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA