Я объявил 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
, чтобы получить элемент из очереди в порядке возрастания, самое низкое значение сначала.
Не могли бы вы объяснить, что мне не хватает?
Заранее спасибо.