簡體   English   中英

C ++ std :: hash_map:密鑰的作用是什么

[英]C++ std::hash_map: What is the key's role

兩者mapshash_maps被設計成保持pairs<key, data> 我很清楚為什么地圖應該有一個關鍵進行排序(更確切地說是樹形),但是我不明白為什么hash_maps需要一個鍵,為什么它的數據不能單獨散列並放入哈希表?

我無法在文檔中找到答案,也無法在網上搜索。

std::unordered_set可以按照您描述的方式工作。 但是,有時您希望從一個數據映射到另一個數據; 這就是std::unordered_map發揮作用的地方。

走到櫥櫃。 拿出電話簿並查找一個號碼。 它有一個名稱和數字之間的映射

你正在尋找一個集合 ,其中一個鍵也是數據。

C ++提供了一些不同的風格: setunordered_set等......

哈希映射也稱為Unordered Map它使用KEYHASH作為桶或槽的index 。換句話說,任何哈希表都需要一個哈希函數來計算一個桶或槽數組的index ,從中可以得到正確的值可以找到。這些index是哈希表的密鑰,用於在最佳情況下在O(1)時間內訪問數據。

如果要將數據本身用作鍵,則相應的容器是std::setstd::unordered_set 地圖包含鍵和值; 之間的差別std::mapstd::unordered_map如何將數據組織; std::map按鍵排序, std::unordered_map按鍵std::unordered_map

暫無
暫無

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

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