[問題] STL priority queue的operator overload
開發平台(Platform): VC++
問題(Question):
STL的priority queue很好用大家都知道,然後我試著放進自訂struct,照著網路上的教學overload operator<這東西,
想讓他從小排到大,卻沒有成功,連看幾個網頁,試了幾次都失敗,想問問版友到底哪出問題了?
餵入的資料(Input):
(0, 4) (先輸入
(2, 3)
預期的正確結果(Expected Output):
(0, 4)
(2, 3)
錯誤結果(Wrong Output):
(2, 3)
(0, 4)
程式碼(Code):
struct PolygonPair{
Polygon *x;
Polygon *y;
};
bool operator<(PolygonPair &A, PolygonPair &B)
{
if (A.x -> getIndex() == B.x -> getIndex())
return A.y -> getIndex() >= B.y -> getIndex();
return A.x -> getIndex() >= B.x -> getIndex();
}
priority_queue<PolygonPair*> violatePair;
while (!violatePair.empty()){
cout << "(" << violatePair.top() -> x -> getIndex() << ", " << violatePair.top() -> y -> getIndex() << ") ";
violatePair.pop();
}
補充說明(Supplement):
其實很明顯這個priority的實作連結著其他的系統,但太多也許不是重點就不貼。
A.x -> getIndex()回傳的是int,大概就這樣。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.53.35
→
09/15 21:20, , 1F
09/15 21:20, 1F
→
09/15 23:05, , 2F
09/15 23:05, 2F
→
09/15 23:35, , 3F
09/15 23:35, 3F
→
09/16 02:55, , 4F
09/16 02:55, 4F
→
09/16 02:56, , 5F
09/16 02:56, 5F
→
09/16 03:00, , 6F
09/16 03:00, 6F
→
09/16 03:01, , 7F
09/16 03:01, 7F
→
09/16 03:02, , 8F
09/16 03:02, 8F
→
09/16 03:03, , 9F
09/16 03:03, 9F
→
09/16 03:27, , 10F
09/16 03:27, 10F
→
09/16 06:39, , 11F
09/16 06:39, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章