cola_prioridad::swap() 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.

cola_de_prioridad::intercambiar()

Esta función se utiliza para intercambiar el contenido de una cola de prioridad con otra cola de prioridad del mismo tipo y tamaño.

Complejidad del tiempo: O(1)

 Sintaxis:

priorityqueuename1.swap(priorityqueuename2)
Parameters :
The name of the priority queue with which
the contents have to be swapped.
Result :
All the elements of the 2 priority queues are swapped.

Ejemplos:

Input  : mypqueue1 = {1, 2, 3, 4}
         mypqueue2 = {3, 5, 7, 9}
         mypqueue1.swap(mypqueue2);
Output : mypqueue1 = {9, 7, 5, 3}
         mypqueue2 = {4, 3, 2, 1}

Input  : mypqueue1 = {1, 3, 5, 7}
         mypqueue2 = {2, 4, 6, 8}
         mypqueue1.swap(mypqueue2);
Output : mypqueue1 = {8, 6, 4, 2}
         mypqueue2 = {7, 5, 3, 1}
Note: In priority_queue container, the elements are printed
      in reverse order because the top is printed first
      then moving on to other elements.

Errores y Excepciones 1. Arroja un error si las colas de prioridad no son del mismo tipo. 2. De lo contrario, tiene una garantía básica de lanzamiento sin excepción. 

CPP

// CPP program to illustrate
// Implementation of swap() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    // priority_queue container declaration
    priority_queue<int> mypqueue1;
    priority_queue<int> mypqueue2;
 
    // pushing elements into the 1st priority queue
    mypqueue1.push(1);
    mypqueue1.push(2);
    mypqueue1.push(3);
    mypqueue1.push(4);
 
    // pushing elements into the 2nd priority queue
    mypqueue2.push(3);
    mypqueue2.push(5);
    mypqueue2.push(7);
    mypqueue2.push(9);
 
    // using swap() function to swap elements of priority queues
    mypqueue1.swap(mypqueue2);
 
    // printing the first priority queue
    cout << "mypqueue1 = ";
    while (!mypqueue1.empty()) {
        cout << mypqueue1.top() << " ";
        mypqueue1.pop();
    }
 
    // printing the second priority queue
    cout << endl
         << "mypqueue2 = ";
    while (!mypqueue2.empty()) {
        cout << mypqueue2.top() << " ";
        mypqueue2.pop();
    }
    return 0;
}

Producción:

mypqueue1 = 9 7 5 3 
mypqueue2 = 4 3 2 1 

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 *