std::greater en C++ con ejemplos

El std::greater es un objeto funcional que se utiliza para realizar comparaciones. Se define como una clase de objeto Función para la comparación mayor que la desigualdad. Esto se puede utilizar para cambiar la funcionalidad de la función dada. Esto también se puede usar con varios algoritmos estándar, como ordenar , cola de prioridad , etc.

Archivo de cabecera:

#include <functional.h>

Clase de plantilla:

template <class T> struct greater;

Parámetro: T es un tipo de los argumentos a comparar por la llamada funcional.

Valor devuelto: Devuelve una variable booleana como se muestra a continuación:

  • Verdadero: si dos elementos dicen (a y b) tales que a > b.
  • Falso: si a < b.

A continuación se muestra la ilustración de std::greater en C++:

Programa 1:

// C++ program to illustrate std::greater
  
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
  
// Function to print array elements
void printArray(int arr[], int n)
{
  
    for (int i = 0; i < n; i++) {
        cout << arr[i] << ' ';
    }
}
  
// Driver Code
int main()
{
  
    int arr[] = { 60, 10, 80, 40, 30,
                  20, 50, 90, 70 };
    int n = sizeof(arr) / sizeof(arr[0]);
  
    // To sort the array in decreasing order
    // use greater <int>() as an third arguments
    sort(arr, arr + 9, greater<int>());
  
    // Print array elements
    printArray(arr, n);
  
    return 0;
}
Producción:

90 80 70 60 50 40 30 20 10

Programa 2:

// C++ program to illustrate std::greater
  
#include <functional>
#include <iostream>
#include <queue>
using namespace std;
  
// Function to print elements of priority_queue
void showpq(priority_queue<int, vector<int>,
                           greater<int> >
                pq)
{
    priority_queue<int,
                   vector<int>,
                   greater<int> >
        g;
    g = pq;
  
    // While priority_queue is not empty
    while (!g.empty()) {
  
        // Print the top element
        cout << g.top() << ' ';
  
        // Pop the top element
        g.pop();
    }
}
  
// Driver Code
int main()
{
    // priority_queue use to implement
    // Max Heap, but using function
    // greater <int> () it implements
    // Min Heap
    priority_queue<int, vector<int>,
                   greater<int> >
        gquiz;
  
    // Inserting Elements
    gquiz.push(10);
    gquiz.push(30);
    gquiz.push(20);
    gquiz.push(5);
    gquiz.push(1);
  
    // Print elements of priority queue
    cout << "The priority queue gquiz is : ";
    showpq(gquiz);
    return 0;
}
Producción:

The priority queue gquiz is : 1 5 10 20 30

Publicación traducida automáticamente

Artículo escrito por kothariji 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 *