Soy muy nuevo en C++, y me preguntaba si había una manera de hacer un montón mínimo en C++ desde la biblioteca estándar.¿Hay alguna manera fácil de hacer un montón mínimo en C++?
Respuesta
Usted puede utilizar std::make_heap
, std::push_heap
, y otros directamente, o puede utilizar un std::priority_queue
construido sobre una std::vector
o similar.
Los métodos std::*_heap
están en <algorithm>
, y la plantilla std::priority_queue
está en <queue>
.
Para aclarar: 'priority_queue
oh, si saliera de la prioridad_cola en C++, ¿obtendría el valor mínimo? – Alex
Para aclarar aún más, la plantilla entera de 'priority_queue' acepta un tipo de contenedor, que por defecto es 'vector
Use make_heap()
y sus amigos, definidos en <algorithm>
, o use priority_queue
, definidos en <queue>
. El priority_queue
usa make_heap
y amigos debajo.
#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 para (sutilmente) señalar que 'priority_queue' es un montón máximo. – avakar
- 1. manera fácil de mantener un montón mínimo con stl?
- 2. ¿Hay alguna manera fácil de hacer que ScrollViewer sea "hinchable"?
- 3. montón mínimo en python
- 4. ¿Hay alguna manera fácil de borrar un formulario ASP.NET?
- 5. ¿Hay alguna manera fácil de obtener sombras en OpenGL?
- 6. ¿Hay alguna manera fácil de cambiar un carácter en una cadena en C#?
- 7. ¿Hay alguna manera de hacer algo como esto en C#?
- 8. ¿Hay alguna manera de hacer una función atómica en C? .
- 9. ¿Hay alguna manera fácil de obtener ServerName en Symfony?
- 10. ¿Hay alguna manera fácil de adjuntar una fuente en Eclipse?
- 11. ¿Hay alguna manera fácil de hacer que gcc omit crtbegin.o/crtend.o?
- 12. ¿Hay alguna manera fácil de combinar dos valores System.Drawing.Color?
- 13. ¿Hay alguna manera fácil de hacer que EntityFramework use valores predeterminados de SQL?
- 14. ¿Hay alguna manera fácil de integrar jshint con netbeans?
- 15. ¿Hay alguna manera fácil de obtener programáticamente el alfabeto?
- 16. ¿Hay alguna manera fácil de convertir Criteria a HQL?
- 17. ¿Hay alguna manera fácil de abrir un Uri y obtener lo que apunte? (C#)
- 18. ¿Hay alguna manera de usar orderby en un forloop C#?
- 19. ¿Existe alguna manera fácil de usar InternalsVisibleToAttribute?
- 20. ¿Hay alguna manera fácil de ordenar NameValueCollection sobre la base de la clave en C#?
- 21. ¿Hay alguna manera de construir implícitamente un tipo en C#?
- 22. jQuery encadenando padre(), ¿hay alguna manera más fácil?
- 23. ¿Hay alguna manera de hacer que un ExecutorService funcione recursivamente?
- 24. Python/Matplotlib - ¿Hay alguna manera de hacer un eje discontinuo?
- 25. ¿Hay alguna manera de hacer un modal accesible?
- 26. ¿Hay alguna manera fácil de hacer que la matriz anidada sea plana?
- 27. ¿Hay alguna manera de hacer un círculo z-index?
- 28. Automatice pimpl'ing de las clases de C++, ¿hay alguna manera fácil?
- 29. ¿Hay alguna manera de romper un ciclo superordenado en C?
- 30. ¿Hay alguna manera fácil de eliminar un depósito de artefactos mercurial?
Preguntas y respuestas no. ¿Es este comportamiento por hábito o elección? – Siddharth