错误是
包含在/ usr / include / c ++ / 8 / unordered_map中的文件:46, 来自main.cpp:3:/usr/include/c++/8/bits/hashtable.h:在’class std :: _ Hashtable< MyClass *,…的实例化中
鉴于对于使用多态指针作为映射键的一般设计模式,看起来似乎只有有限的特别有用的结果这一事实,我只是将修改后的代码发布为 rafix07 正确而迅速地提出建议
struct MyClassHash { public: size_t operator() (const MyClass * c) const { return c->id(); } }; struct MyClassEquality { public: bool operator() (const MyClass * a, const MyClass * b) const { return a->id() == b->id(); } };