как переопределить оператор < - PullRequest
2 голосов
/ 19 сентября 2010

Я пытаюсь переопределить оператор <следующим образом: </p>

внутри узла:

bool operator <(const Node* other) {
  return *(this->GetData()) < *(other->GetData());
}

внутри транспортного средства:

bool operator <(const Vehicle &other) {
  return this->GetKilometersLeft() < other.GetKilometersLeft();
}

вызов оператора:

while (index > 0 && m_heapVector[index] < m_heapVector[parent(index)])

определение вектора:

vector<Node<T>*> m_heapVector;

Я проверил вызов, и он не вызывает переопределенные операторы.

1 Ответ

4 голосов
/ 19 сентября 2010

это потому что вы сравниваете указатели,

Вы должны сделать это:

*m_heapVector[index] < *m_heapVector[parent(index)]

и соответственно настроить оператора

bool operator<(const Node &other) const;
...