Sono molto nuovo al C++ e mi chiedevo se esistesse un modo per creare un heap minimo in C++ dalla libreria standard.C'è un modo semplice per creare un heap minimo in C++?
risposta
È possibile utilizzare std::make_heap
, std::push_heap
e altri direttamente oppure è possibile utilizzare uno std::priority_queue
creato su un std::vector
o simile.
I metodi std::*_heap
sono in <algorithm>
e il modello std::priority_queue
è in <queue>
.
Per chiarire: 'priority_queue
oh so se ho estratto da priority_queue in C++ avrò ottenuto il valore minimo? – Alex
Per chiarire ulteriormente, l'intero modello di 'priority_queue' accetta un tipo di contenitore, che per impostazione predefinita è' vector
Utilizzare make_heap()
e gli amici, definito in <algorithm>
o utilizzare priority_queue
, definito in <queue>
. Il priority_queue
utilizza make_heap
e gli amici sottostanti.
#include <queue> // functional,iostream,ctime,cstdlib
using namespace std;
int main(int argc, char* argv[])
{
srand(time(0));
priority_queue<int,vector<int>,greater<int> > q;
for(int i = 0; i != 10; ++i) q.push(rand()%10);
cout << "Min-heap, popped one by one: ";
while(! q.empty()) {
cout << q.top() << ' '; // 0 3 3 3 4 5 5 6 8 9
q.pop();
}
cout << endl;
return 0;
}
+1 per (sottilmente) sottolineando che 'priority_queue' è un max-heap. – avakar
- 1. un modo semplice per mantenere un heap minimo con stl?
- 2. Qual è il modo più semplice ed efficace per creare un heap minimo in Scala?
- 3. Implementazione C++ di un heap binario
- 4. Esiste un modo semplice per implementare AutoResetEvent in C++ 0x?
- 5. C'è un modo semplice per creare variabili dinamiche con Javascript?
- 6. Come creare un server DNS semplice personalizzato in C/C++
- 7. C'è un modo semplice per creare sottodomini su codeigniter?
- 8. Esiste un modo più semplice per creare il pacchetto perl
- 9. Un modo corretto per creare una matrice in C++
- 10. Un metodo per creare una semplice GUI
- 11. Qual è il modo più semplice per creare un'estensione C opzionale per un pacchetto python?
- 12. Un modo semplice per disabilitare un UITextField?
- 13. C'è un modo semplice per cambiare un carattere in una stringa in C#?
- 14. phpinfo: un modo semplice per vederlo?
- 15. C'è un modo per creare strutture anonime in C#?
- 16. C# foreach (proprietà nell'oggetto) ... Esiste un modo semplice per farlo?
- 17. Un modo semplice per convertire il codice c nell'assemblaggio x86?
- 18. Esiste un modo semplice per concatenare due BitArray (C# .NET)?
- 19. Modo più semplice per creare un memorandware C++ da (char *, size_t), senza copiare i dati?
- 20. C'è un modo semplice per creare un alias di comando in mysql?
- 21. C'è un modo semplice per usare InternalsVisibleToAttribute?
- 22. Esiste un modo semplice per randomizzare un elenco in VB.NET?
- 23. Modo più semplice per trasformare un DOMSource in un StreamSource?
- 24. Il modo più semplice per convertire un URL in un collegamento ipertestuale in una stringa C#?
- 25. Creare un popup modale semplice
- 26. Un modo semplice per invertire String
- 27. Parametri C# con un minimo richiesto di un valore
- 28. Un modo semplice per appiattire questo array?
- 29. Un modo semplice per unire i plists?
- 30. C'è un modo semplice per impostare nullglob per un glob
fare domande e accettare nessuno. Questo comportamento è per abitudine o scelta? – Siddharth