私はこのようにstd::priority_queueを宣言しました。
priority_queue < Aircraft, vector<Aircraft>, less<Aircraft> > *q;
そして、私はこのようにless演算子をオーバーロードしました。
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
私が欠けているものを説明してもらえますか?