c++ STL中作为unordered_map键的散列指针

Hashing pointers as Keys for unordered_map in C++ STL

本文关键字:指针 map STL unordered c++      更新时间:2023-10-16

我发布了一个类似的问题,关于在c++ STL中使用指针作为映射上的键。指针作为键使用时,如何在unordered_maps中散列?更具体地说,如果我定义:

std::unordered_map< CustomClass*, int > foo;

默认的c++ std::hash实现可以处理这些指针吗?使用安全吗?这是好的做法吗?

定义了std::hash<T*>,但它如何操作的细节取决于实现。使用它当然是安全的,我认为这是一个很好的实践-只要它是你需要作为键的指针,而不是对象内容本身。