std::priority_queue<T,Container,Compare>::push
De cppreference.com
< cpp | container | priority queue
void push(const value_type& value ); | ||
void push( value_type&& value ); | (desde C++11) | |
Encola el elemento dado value
en la cola de prioridad.
1) Efectivamente llama a c.push_back(value);std::push_heap(c.begin(), c.end(), comp);
2) Efectivamente llama a c.push_back(std::move(value));std::push_heap(c.begin(), c.end(), comp);
Contenido |
[editar]Parámetros
value | - | El valor del elemento a encolar. |
[editar]Valor de retorno
(Ninguno)
[editar]Complejidad
Un número algorítmico de comparaciones más la complejidad de Container::push_back.
[editar]Ejemplo
Ejecuta este código
#include <queue>#include <iostream> struct Evento {int prioridad{};char datos{' '}; friendbool operator<(Evento const& lhs, Evento const& rhs){return lhs.prioridad< rhs.prioridad;} friendstd::ostream& operator<<(std::ostream& os, Evento const& e){return os <<"{ "<< e.prioridad<<", '"<< e.datos<<"' } ";}}; int main(){std::priority_queue<Evento> eventos; std::cout<<"Llenar la cola de eventos:\n"; for(autoconst e:{ Evento{6,'L'}, {8,'I'}, {9,'S'}, {1,'T'}, {5,'E'}, {3,'N'}}){std::cout<< e <<' '; eventos.push(e);} std::cout<<"\n""Procesar eventos:\n"; for(;!eventos.empty(); eventos.pop()){ Evento const& e = eventos.top();std::cout<< e <<' ';}}
Salida:
Llenar la cola de eventos: { 6, 'L' } { 8, 'I' } { 9, 'S' } { 1, 'T' } { 5, 'E' } { 3, 'N' } Procesar eventos: { 9, 'S' } { 8, 'I' } { 6, 'L' } { 5, 'E' } { 3, 'N' } { 1, 'T' }
[editar]Véase también
(C++11) | Encola el elemento en el sitio y ordena el contenedor subyacente. (función miembro pública) |
Desencola el elemento en la parte superior de la cola de prioridad. (función miembro pública) |