我发布了一个类似的问题,关于在 C++ STL 中使用指针作为映射上的键。当用作键时,指针如何在 unordered_maps 中进行哈希处理。更具体地说,如果我定义:
std::unordered_map< CustomClass*, int > foo;
默认的 C++ std::hash 实现可以处理这些指针吗?使用安全吗?这是好的做法吗?
std::hash<T*>
已定义,但其操作方式的细节取决于实现。使用它肯定是安全的,我认为这是一个很好的做法 - 只要它是您需要作为键的指针,而不是对象内容本身。