Kolejki priorytetowe z biblioteki STL

0

Dokladnie chodzi mi o to czy mozna w petli zrobic kilka kolejek, tak by pozniej do kazdej byl dostep podobny jak w przypadku dostepu do tablicy.

for(i=0;i++;i<10) {
priority_queue<int, vector<int>, greater<int> > pq[i];
}

Cos w tym stylu, tyle ze to oczywiscie zwraca blad przy kompilacji. pq[i] to chyba odwolanie do konkretnego elementu kolejki. Jak to mozna zrobic inaczej?

0

Zrób kolejke kolejek ;)

priority_queue< priority_queue<int> > pq;
//...
for(i=0;i++;i<pq.size()) {
   pq[i].rob_cos_z_kolejka_i();
}
0

Nie jestem pewien czy mysle dobrze, a w ksiazce w ktorej mam opisane te kolejki nie jest napisane, ale dostep do poszczegolnych elementow takiej kolejki nie jest w czasie stalym. W czasie stalym jest chyba tylko do tego elementu pierwszego.

A potrzebne mi jest cos co pozwoliloby siegac do poszczegolnych kolejek w nieokreslonej kolejnosci. Moze jakas tablica wskaznikow na kolejki? No chyba ze zle mysle i czas dostepu do dowolnego elementu kolejki jest staly i niezalezny od ilosci elementow w kolejce.

EDIT:

Doczytalem sie, ze kolejka dwustronna pozwala na latwy dostep do dowolnych elementow. Tak wiec zaimplementowalem sobie taka kolejke w ktorej kazdy element jest kolejka priorytetowa. Prosze jeszcze nie zamykac/usuwac tematu. Jesli pojawia sie jeszcze jakies problemy z tymi kolejkami, napisze tutaj.

Dzieki za pomysl z kolejka kolejek... ;)

0

priority_queue to kontener party na deque albo vector, zastanów sie, czego tak naprawde potrzebujesz. Chcesz mieć dostęp stały do kolejek - trzymaj je w wektorze, deque lub priority_queue. Sama kolejka nie musi być tablicą jeśli używasz tylko push i pop, możesz wykorzystać kontener list lub stack oparty o list

1 użytkowników online, w tym zalogowanych: 0, gości: 1