簡體   English   中英

為什么操作符==對於std :: unordered_map而言還不夠? -C ++

[英]Why is an operator== not sufficient for an std::unordered_map? - C++

為什么我需要同時實現==運算符和返回size_t的隨機運算符? 返回size_t的方法實際上應該返回什么?

編輯:當我說隨機運算符時,我並不是說它沒有用。 我的意思是,在我看來,我看不到它有什么用,因此是最后一個問題。 7

哈希容器(哈希表,哈希圖,無序映射)使用哈希函數生成單個整數值來表示條目的索引(或鍵)。 這使您可以快速查找,因為(假設我們散列值散布得很好)一旦有了散列,我們只需要查看該索引即可。 大多數其他存儲方法意味着比較一堆東西,直到找到正確的元素。

關於哈希鍵,實際上只有兩個規則:1.每次調用哈希函數時,對於給定的輸入,您都會獲得相同的鍵。 2.對於不同的輸入,該值是不同的-不必唯一,但是從相似的輸入中獲得的價差越大,效果越好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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