我已經聲明std :: priority_queue這樣。優先級隊列,超載較少的操作
priority_queue < Aircraft, vector<Aircraft>, less<Aircraft> > *q;
我重載了這麼少的運算符。
bool Aircraft::operator<(const Aircraft &rhs) const
{
return (m_dep_time < rhs.m_dep_time);
}
我打印出優先級隊列,並且我以遞減順序(最大的dep_time首先)獲取元素。我不得不將m_dep_time < rhs.m_dep_time
更改爲m_dep_time > rhs.m_dep_time
,它工作。我能夠按照我的意圖獲得最低的dep_time。
我認爲在邏輯上使用m_dep_time < rhs.m_dep_time
是正確的,而不是m_dep_time > rhs.m_dep_time
以增加的順序從隊列中獲取元素,最低的價值第一。
你能解釋一下我失蹤了嗎?
在此先感謝。