我有一堂课
class Base {
...
virtual size_t GetHash() = 0;
...
};
以及一些继承自 的类Base
覆盖GetHash()
.
我想将这些类用作unordered_map
or中的键unordered_set
。目前我通过使用实现它
struct HashKey
{
template <typename T>
size_t operator()(const T & obj) const
{
return obj.GetHash();
}
};
作为模板中的一个Hash
类(如)。unordered_map
unordered_map<MyDerived, int, Hashkey>
根据这个问题,我可以明确地专门std::hash<T>
针对我自己的课程并且完全可以正常工作,但是我是否有兴趣将它专门用于多个课程?
我正在使用 C++17