0
所以,我試圖實現一個地圖,可能會有大約20,000個字符串,字符串對在C++中。使用Google Dense哈希映射值得嗎?我將主要檢查對的地圖,如果找不到,則插入它。我不會對這些對進行任何刪除或改動。如果我應該使用密集散列圖,我該怎麼做?網上沒有太多的信息,但我知道我需要一個散列函數。谷歌dense_hash_map C++
編輯:它們串來串對
所以,我試圖實現一個地圖,可能會有大約20,000個字符串,字符串對在C++中。使用Google Dense哈希映射值得嗎?我將主要檢查對的地圖,如果找不到,則插入它。我不會對這些對進行任何刪除或改動。如果我應該使用密集散列圖,我該怎麼做?網上沒有太多的信息,但我知道我需要一個散列函數。谷歌dense_hash_map C++
編輯:它們串來串對
如果你需要一個哈希表是速度更快,有一點空閒內存中,然後去了。
谷歌密集地圖很容易安裝(aptitude install libsparsehash-dev
on Debian),它只是標題,所以你甚至不需要鏈接到另一個庫。它是最快的哈希映射,但比其他映射具有更高的內存要求。
http://incise.org/hash-table-benchmarks.html基準測試可以很好地比較性能和內存配置文件(2013-08-02:這個基準測試的原始結果:http://pastebin.com/jJL3rzWp)。
請注意,對於某些加載,b+tree可以比散列更容易緩存。
爲什麼要避免STL地圖結構的特殊原因? – FailedDev
只是爲了獲得最佳性能。即時使用std :: map,但我很好奇,如果我應該切換到谷歌密集哈希映射 –
你有'unordered_map'在C++ 11 – Hauleth