您的比较器不正确。该文件的
std::priority_queue
规定,它应该提供一个严格的弱序(即,它应该event1->getTimestamp() > event2->getTimestamp()
不是>=
)。为了使其稳定,您只需将行号存储在中,
Event
然后将其比较event1->getTimestamp() == event2->getTimestamp()
。
像这样:
struct EventComparator { bool operator()(const Event* event1, const Event* event2) { if (event1->getTimestamp() != event2->getTimestamp()) { return event1->getTimestamp() > event2->getTimestamp(); } return event1->getLineNumber() > event2->getLineNumber(); } };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)