prioridad_cola::push() y prioridad_cola::pop() en C++ STL

Las colas de prioridad son un tipo de adaptadores de contenedores, diseñados específicamente para que el primer elemento de la cola sea el más grande o el más pequeño de todos los elementos de la cola. Sin embargo, en C++ STL (de manera predeterminada), el elemento más grande está en la parte superior. También podemos crear una cola de prioridad que tenga el elemento más pequeño en la parte superior simplemente pasando un parámetro adicional al crear la cola de prioridad.

prioridad_cola::push()

La función push() se usa para insertar un elemento en la cola de prioridad. El elemento se agrega al contenedor de la cola de prioridad y el tamaño de la cola aumenta en 1. En primer lugar, el elemento se agrega en la parte posterior y, al mismo tiempo, los elementos de la cola de prioridad se reordenan según la prioridad. 

Complejidad del tiempo: O(log n)

Sintaxis:

pqueuename.push(value)
Parameters :
The value of the element to be inserted is passed as the parameter.
Result :
Adds an element of value same as that of 
the parameter passed in the priority queue.

Ejemplos:

Input :  pqueue
         pqueue.push(6);
Output : 6

Input :  pqueue = 5, 2, 1
         pqueue.push(3);
Output : 5, 3, 2, 1

Errores y excepciones 1. Muestra un error si el valor pasado no coincide con el tipo de cola de prioridad. 2. No muestra ninguna garantía de lanzamiento de excepción si el parámetro no lanza ninguna excepción. 

CPP

// CPP program to illustrate
// Implementation of push() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    // Empty Queue
    priority_queue<int> pqueue;
    pqueue.push(3);
    pqueue.push(5);
    pqueue.push(1);
    pqueue.push(2);
    // Priority queue becomes 5, 3, 2, 1
 
    // Printing content of queue
    while (!pqueue.empty()) {
        cout << ' ' << pqueue.top();
        pqueue.pop();
    }
}

Producción:

5 3 2 1
prioridad_cola::pop()

La función pop() se usa para eliminar el elemento superior de la cola de prioridad. 

Complejidad del tiempo: O(log n)

Sintaxis:

pqueuename.pop()
Parameters :
No parameters are passed.
Result :
The top element of the priority
queue is removed.

Ejemplos:

Input :  pqueue = 3, 2, 1
         myqueue.pop();
Output : 2, 1

Input :  pqueue = 5, 3, 2, 1
         pqueue.pop();
Output : 3, 2, 1

Errores y excepciones 1. Muestra error si se pasa un parámetro. 2. No muestra ninguna garantía de lanzamiento de excepción si el parámetro no lanza ninguna excepción. 

CPP

// CPP program to illustrate
// Implementation of pop() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    // Empty Priority Queue
    priority_queue<int> pqueue;
    pqueue.push(0);
    pqueue.push(1);
    pqueue.push(2);
    // queue becomes 2, 1, 0
 
    pqueue.pop();
    pqueue.pop();
    // queue becomes 0
 
    // Printing content of priority queue
    while (!pqueue.empty()) {
        cout << ' ' << pqueue.top();
        pqueue.pop();
    }
}

Producción:

0

Aplicación: push() y pop() Dada una cantidad de enteros, agréguelos a la cola de prioridad y encuentre el tamaño de la cola de prioridad sin usar la función de tamaño.

Input : 5, 13, 0, 9, 4
Output: 5

Algoritmo 1. Empuje los elementos dados al contenedor de la cola de prioridad uno por uno. 2. Siga sacando los elementos de la cola de prioridad hasta que se vacíe e incremente la variable contador. 3. Imprima la variable de contador. 

CPP

// CPP program to illustrate
// Application of push() and pop() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    int c = 0;
    // Empty Priority Queue
    priority_queue<int> pqueue;
    pqueue.push(5);
    pqueue.push(13);
    pqueue.push(0);
    pqueue.push(9);
    pqueue.push(4);
    // Priority queue becomes 13, 9, 5, 4, 0
 
    // Counting number of elements in queue
    while (!pqueue.empty()) {
        pqueue.pop();
        c++;
    }
    cout << c;
}

Producción:

5

Publicación traducida automáticamente

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