我发表了一个类似的问题,涉及在C++ STL中将指针用作映射的键。当将指针用作键时,unordered_map中的哈希是如何进行的。更具体地说,如果我定义:
std::unordered_map< CustomClass*, int > foo;
默认的C++ std::hash实现能够处理这些指针吗?使用它是否安全?这是一个好的做法吗?
我发表了一个类似的问题,涉及在C++ STL中将指针用作映射的键。当将指针用作键时,unordered_map中的哈希是如何进行的。更具体地说,如果我定义:
std::unordered_map< CustomClass*, int > foo;
默认的C++ std::hash实现能够处理这些指针吗?使用它是否安全?这是一个好的做法吗?
std::hash<T*>
已经定义,但其操作细节取决于实现。只要你需要的是指针而不是对象内容本身作为键,那么它肯定是安全可靠的,并且我认为这是一个好的实践。