在线文档教程
C++
应用 | Utilities

std::hash(std::shared_ptr)

STD::散列%28std::Shared[医]PTR%29

template struct hash>;(since C++11)

模板的专门化std::hash为std::shared_ptr<T>允许用户获取类型对象的散列。std::shared_ptr<T>...

为某一给定std::shared_ptr<T> p,这种专业化确保了。

std::hash>()(p) == std::hash()(p.get()).(until C++17)
std::hash<std::shared_ptr<T>>()(p) == std::hash<typename std::shared_ptr<T>::element_type*>()(p.get()).(since C++17)

另见

hash (C++11)hash function object (class template)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/Memory/Shared[医]PTR/散列