Mi stavo chiedendo quando il C++ STL priority_queue
si ordina da solo. Voglio dire lo fa insert
in un posto corretto quando si push
l'elemento in, o si ordina e ti dà l'elemento di massima priorità quando si peek
o pop
fuori? Lo sto chiedendo perché il mio priority_queue<int>
conterrà un indice per un array che potrebbe avere valori aggiornati e voglio aggiornarlo quando lo faccio pq.top();
.Quando si ordina un oggetto std :: priority_queue <>?
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
int main() {
priority_queue<int> pq;
pq.push(2);
pq.push(5); //is the first element 5 now? or will it update again when I top() or pop() it out?
return 0;
}
Grazie.
Potete scoprire queste proprietà con facilità, perché come 'map' ci vuole un predicato confronto. Se fornisci un predicato di confronto che stampa sulla console (ad esempio) ad ogni confronto, sarai testimone dal vivo quando viene richiamato (e su quali valori). –