【发布时间】:2014-08-28 15:52:47
【问题描述】:
我有一个 Extended_Expression 类型,我在无序集中使用它,并且声明如下:
bool ExtendedExpression::operator == (const ExtendedExpression & exp) const{ ... }
但是unordered_set的find操作符好像不起作用,好像是在用另一种相等,比如内存地址。
指定要使用的相等运算符的最简单方法是什么?如果问题很明显,我是 C++ 的初学者。
【问题讨论】:
-
这对于相等运算符来说看起来不错。可能你还没有实现好的散列函数。
-
定义了一个 Hash() 但它是否被无序集自动使用?在公共场合:HashExpr Hash() const {return _hash;} 在受保护场合:HashEpxr _hash;
标签: c++ unordered-set