stdhash

    4熱度

    2回答

    我可以用我自己定義的C++ 11中的std::hash替換std::hash的實際實現嗎? 我的意思是從我的代碼庫,沒有觸及標準庫。 在這種情況下,我看不到虛擬函數/多態的任何用途,所以我想我不能改變std :: hash的定義嗎?

    13熱度

    5回答

    我知道哈希無限數量的字符串轉換爲32b int必須產生碰撞,但我期望從哈希函數一些不錯的分佈。 這兩個字符串具有相同的哈希值是不是很奇怪? size_t hash0 = std::hash<std::string>()("generated_id_0"); size_t hash1 = std::hash<std::string>()("generated_id_1"); //hash0 ==

    3熱度

    2回答

    我使用TR1實現的unordered_map在我的代碼和鏈接器提供了奇怪的錯誤,我甚至不能破譯: BPCFG.o: In function `std::__detail::_Hash_code_base<DottedRule, std::pair<DottedRule const, int>, std::_Select1st<std::pair<DottedRule const, int> >,

    16熱度

    2回答

    標準庫將std :: hash作爲專門用於不同類型的模板結構體來實現。它是這樣使用的: #include <iostream> #include <functional> int main() { std::hash<int> hasher; std::cout << hasher(1337) << std::endl; return 0; } 我的問

    5熱度

    2回答

    在閱讀關於std :: weak_ptr的運算符<的討論後,我看不到任何爲何使用std :: weak_ptr的控制塊定義std :: hash不起作用的原因。我也不敢相信標準委員會忽視了這一點。有沒有人讀過關於這個話題的相關討論? 編輯:談運營商<性病:: weak_ptr的 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n159

    1熱度

    1回答

    所以我使用的庫有一個枚舉(說它的名字爲LibEnum)。我需要std::unordered_set的LibEnum,但是我收到編譯錯誤,沒有專門的std::hash它。我可以很容易地編寫它,只是返回值的數量(第一個元素是0,第二個1等),但我應該把這個專業化的地方,它應該是什麼樣子?我無法修改庫源。 enum LibEnum { A, B, C, D}; std::unordered_s

    2熱度

    2回答

    有沒有一種簡單的方法做C++ 11 &升壓以下幾點: 使用std::hash標準的定義,隨時可用來自<functional> 使用boost::hash_value來定義std::hash,其中std::hash丟失,但boost::hash_value可用於<boost/functional/hash.hpp>。 例如: std::hash<std::vector<bool>>應來自標準庫, s

    1熱度

    1回答

    嗨我有一個關於std :: hash的問題,如果我有2個大字符串比較,我願意接受std :: hash在大多數情況下會比較平等,而不是直接進行字符串比較,而是更符合性地執行類似以下內容的操作?另外考慮這將在循環讀取一個文件,所以它會被執行幾次,這是大型文件的關注。 std::string largeString1; // large but not huge meaning a line of t