[英]Accessing the intrinsic type hash functions for tr1/unordered_map
我搞砸了unordered_map
類模板,我想為我的類寫一個自定義的哈希器。 它的文檔提到為固有類型提供了默認哈希函數。 因此,如果您聲明:
std::tr1::unordered_map<std::string, int> foo;
您會自動為您定義一個哈希器。
如果要使用自定義哈希函數,這里有一個很好的示例,說明如何提供函子。
但是,如果我有一個復雜的類,該類具有std::string
成員,我想將該成員用作將鍵插入/刪除到unordered_map
的鍵? 我不想重寫自己的哈希器。 我想利用已經為std::string
類型編寫的內容。
默認的哈希函子由std::hash<T>
提供,該函數返回size_t
。
因此,您可以合並類中多個成員的哈希,例如通過計算(std::hash<T>()(a) + prime * (std::hash<T>()(b) + prime * std::hash<T>()(c)))
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.