std::less en C++ con ejemplos

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;
}
Producción:

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;
}
Producción:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *