Cola de Prioridad de Vectores en C++ STL con Ejemplos

Cola de prioridad en STL Las colas de prioridad son un tipo de adaptadores de contenedores, diseñados específicamente de tal manera que el primer elemento de la cola es el mayor de todos los elementos de la cola y los elementos están en orden no creciente (por lo tanto, podemos ver que cada elemento de la cola tiene una prioridad {orden fijo})

Vector en STL Vector es lo mismo que las arrays dinámicas con la capacidad de cambiar su tamaño automáticamente cuando se inserta o elimina un elemento, y el contenedor maneja automáticamente su almacenamiento. Los elementos vectoriales se colocan en almacenamiento contiguo para que se pueda acceder a ellos y recorrerlos mediante iteradores.

Cola de Prioridad de Vectores en STL: La Cola de Prioridad de Vectores puede ser muy eficiente en el diseño de estructuras de datos complejas.

Sintaxis:

priority_queue<vector<datatype>> pq;

Por ejemplo : considere un problema simple donde tenemos que imprimir el vector máximo que está en la cola.

// C++ program to demonstrate
// use of priority queue for vectors
  
#include <bits/stdc++.h>
using namespace std;
  
priority_queue<vector<int> > pq;
  
// Prints maximum vector
void Print_Maximum_Vector(vector<int> Vec)
{
    for (int i = 0; i < Vec.size(); i++) {
        cout << Vec[i] << " ";
    }
    cout << endl;
    return;
}
  
// Driver code
int main()
{
    // Initializing some vectors
    vector<int> data_1{ 10, 20, 30, 40 };
    vector<int> data_2{ 10, 20, 35, 40 };
    vector<int> data_3{ 30, 25, 10, 50 };
    vector<int> data_4{ 20, 10, 30, 40 };
    vector<int> data_5{ 5, 10, 30, 40 };
  
    // Inserting vectors into priority queue
    pq.push(data_1);
    pq.push(data_2);
  
    // printing the maximum vector till now
    Print_Maximum_Vector(pq.top());
  
    // Inserting vectors into priority queue
    pq.push(data_3);
  
    // printing the maximum vector till now
    Print_Maximum_Vector(pq.top());
  
    // Inserting vectors into priority queue
    pq.push(data_4);
    pq.push(data_5);
  
    // printing the maximum vector till now
    Print_Maximum_Vector(pq.top());
  
    return 0;
}
Producción:

10 20 35 40 
30 25 10 50 
30 25 10 50

Publicación traducida automáticamente

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