C++学习笔记-----std::pair作为unordered_map的key
使用pair作为unordered_map的key时会提示这样的错误:
The C++ Standard doesn’t provide a hash for this type.
意思是C++标准中没有为pair提供hash函数,所以在使用的时候需要人为传入一个。
pair作为unordered_map的key需要为pair添加hash函数
class ListNode;struct pair_hash
{template<class T1, class T2>std::size_t operator() (const std::pair& p) const{auto h1 = std::hash{}(p.first);auto h2 = std::hash{}(p.second);return h1 ^ h2;}
};unordered_mapbool >, int> error_hash; //error
unordered_mapbool >, int, pair_hash> ok_hash; //ok
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
