我正在尝试覆盖运算符<如下:
在Node中:
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;
我检查了这个电话,并没有调用被覆盖的运营商。
答案 0 :(得分:4)
这是因为你正在比较指针,
你必须做到:
*m_heapVector[index] < *m_heapVector[parent(index)]
并相应调整运营商
bool operator<(const Node &other) const;