簡體   English   中英

訪問tr1 / unordered_map的固有類型哈希函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM