cum sa fac un heap care sa aiba sortate elementele crescator (cu STL)?
am incercat asa dar vad ca nu merge (sau debuggerul face figuri)
priority_queue< int, deque<int>, less<int> > t;
si inca o intrebare... cum introduc un element in heap daca lucrez cu structuri
(adica avem un struct nod { int a; int b } pe care este definit heapul) fara sa folosesc o variabila a de tip nod ?
ms
La primul punct, cred ca asta e ceea ce vrei:
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
priority_queue<int, vector<int>, greater<int> > Q;
int main ()
{
Q.push (3);
Q.push (8);
Q.push (7);
while (!Q.empty ())
{
printf ("%d ", Q.top ());
Q.pop ();
}
return 0;
}
Iar la a 2a, poti sa faci un constructor in structura si apoi sa ii spui Q.push (nod (1, 2));
Sau, mai simplu: Q.push ((nod) {1, 2}); (fara sa mai scrii constructor)