[C++] : priority_queue (STL)

0

Witam!
mam pytanie w jaki sposób można kolejke priorytetową trzymającą int'y typu max z STL'a przerobić na typ min ? Dziękuje z góry. ;-)

1

trzymającą int'y typu max z STL'a

?

priority_queue< int, vector< int >, greater< int > > q;

o to chodzi?

0
priority_queue <int> kp

mam coś takiego i chce sciągać z kolejki elementy rosnąco.

0

imo to niewykonalne w sposób bezpośredni.

0

ok thx za odp. czyli trzeba samemu kodzić z laczka :/

0

musisz przeciązyc operator "<"

0

a dokładniej jak to zrobić? może jakiś przykład?

0

zrobic strukture

i tam wewnątrz przeciązyc operator np tak:

bool operator<(const stan&l,const stan&r){
return l.b>r.b;
}

to jest fragment kodu dijkstry :P bo akurat był pod ręką ;)

i potem deklarujesz :

priority_queue<stan> kolejka;

i ta kolejka bedzie dzialac tak jak to wczesniej ukodziłes (to w tej strukturze)
</image>

0

thx:)

1
szkielet napisał(a)

musisz przeciązyc operator "<"

tak, przeciąż operator < żeby działał jak > [glowa]

napisałem w pierwszym poście jak to zrobić...

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