おそらく簡単な解決策がある問題がありますが、しばらく見回しましたが、まだ成功していません。
次のような単純なクラスがあります。
class Node{
public:
int value;
bool visited;
Node(int argvalue) {value = argvalue;visited = false; }
bool operator==(const Node& n) {return (value == n.value);}
};
class MyHash {
size_t operator()(const Node& x) const { return std::hash<int>()(x.value); }
};
挿入しようとするとエラーが発生し、理由がわかりませんか? ハッシュ関数を間違って実装したのでしょうか、それとも等号演算子 == では十分ではありませんか?
unordered_map<Node, int, MyHash> my_items;
my_items.insert(Node(33), 894);