我有以下代码。
文件Ant.h
class hashing_func {
public:
unsigned long operator()(const Node& key) const {
unsigned long hash;
hash = key.GetId();
return hash;
}
};
class key_equal_fn {
public:
bool operator()(const Node& t1, const Node& t2) const {
return (t1.GetId() == t2.GetId());
}
};
class Ant {
private:
std :: unordered_map <Node*, int, hashing_func, key_equal_fn> nodemap;
};
但是,在编译时,我不断收到错误消息
[Error] no match for call to '(const hashing_func)(Node* const&)'
显然,我的地图包含Node*
(节点指针)作为键,并且目前期望
long unsigned int hashing_func :: operator() ( const Node& const)
我将如何解决这个问题(将散列和相等函数转换为接受节点指针)?非常感谢您的帮助。