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; }
10 20 35 40 30 25 10 50 30 25 10 50