priority_queue + struktura

0

Mam taką oto strukturkę:

struct przejscie
{
    int first;
    int second;
    double prob;
};

Deklaruję kolejkę STLa

priority_queue<struct przejscie> kolejka;

I zaczynają się schody. Kiedy chcę dodać coś do kolejki przez kolejka.push(obiekt) komplator wyrzuca mi jakiś błąd w "stl.h". Co robię źle? Chcę otrzymać kolejkę priorytetową wcześniej wyselekcjonowanych z większego zbioru struktur.

0

Musisz napisać operator/funkcję do porównywania tych elementów. Przecież jakoś trzeba ustalić, który element na najwyższy priorytet.

Domyślnie std::priority_queue używa std::less, który porównuje elementy za pomocą operator<. Albo napisz przeciążenie tego operatora dla Twojej klasy albo napisz inną funkcję porównującą i ją podaj jako parametr szablonu.

Hint: struct w parametrze szablonu jest niepotrzebne.

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