Kolejka piorytetowa i wagi krawędzi w grafie

0

Chcę przechowywać krawędzie grafu według wag, od najmniejszej do największej. Postanowiłem użyć do tego kolejki piorytetowej, poniżej kod:


struct Edge {
    int from;
    int to;
    int weight;
    Edge(int from, int to, int weight) {
        this->from = from;
        this->to = to;
        this->weight = weight;
    }
};

struct CompareWeight {
    bool operator()(const Edge& e1, const Edge& e2) {
        return e1.weight > e2.weight;
    }
};

 priority_queue<Edge, vector<Edge>, CompareWeight> pq;
        for (auto edge : edges)
            pq.push(edge);

Efekt jest taki, że wrzuca mi do kolejki te krawędzie losowo, jakby w ogóle nie porównywało wag. Nie rozumiem, gdzie popełniam błąd - czy problem leży w przeciążonym operatorze?

0

I na jakiej podstawie to stwierdziłeś?

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