0

次のコードはセグメンテーション違反を引き起こします。誰かが私を啓発できますか? 私が達成したかったのは、tv.t の昇順または tv.m の降順で並べ替えられたプライオリティ キューを持つことだけです。

struct tv {
    int m;
    int c;
    int t;
    tv(int mm, int cc, int tt): m(mm), c(cc), t(tt) {}
};


bool comp(struct tv & t1 , struct tv & t2) {
    if (t1.t == t2.t) {
        return t1.m < t2.m;
    }
    return t1.t > t2.t;
}


int main(int argc, char** argv) {
    priority_queue<struct tv, vector<struct tv>, decltype(&comp)> q;
    q.emplace(0, 0, 0);
    q.emplace(1, 0, 0);
    q.emplace(1, 1, 1);
    q.emplace(1, 2, 0);
    return 0;
}
4

1 に答える 1