当我使用 QList 或 QHashMap 时,我的运算符 == 没有被调用
这是我的代码:
class Node
{
QString _state;
Node* _parent;
// for ID generation purpose
static int _seqNumber;
int _id;
public:
Node();
inline bool operator== (const Node &node) const
{
return ( _id == node._id );
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用 QHash 例如:
QHash<Node*, double> hashMap* = new QHash<Node*, double>();
Node* node = new Node();
hashMap->insert(node, 500);
// value is never found, because operator== is not being called
double value = hashMap->value(node);
Run Code Online (Sandbox Code Playgroud)
我无法获取值或比较节点是否存在于地图中,因为没有调用 operator== !!
如果你能帮忙,我会很感激。
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |