2011-12-02 39 views
0

所以,我試圖實現一個地圖,可能會有大約20,000個字符串,字符串對在C++中。使用Google Dense哈希映射值得嗎?我將主要檢查對的地圖,如果找不到,則插入它。我不會對這些對進行任何刪除或改動。如果我應該使用密集散列圖,我該怎麼做?網上沒有太多的信息,但我知道我需要一個散列函數。谷歌dense_hash_map C++

編輯:它們串來串對

+0

爲什麼要避免STL地圖結構的特殊原因? – FailedDev

+0

只是爲了獲得最佳性能。即時使用std :: map,但我很好奇,如果我應該切換到谷歌密集哈希映射 –

+1

你有'unordered_map'在C++ 11 – Hauleth

回答

0

如果你需要一個哈希表是速度更快,有一點空閒內存中,然後去了。

谷歌密集地圖很容易安裝(aptitude install libsparsehash-devon Debian),它只是標題,所以你甚至不需要鏈接到另一個庫。它是最快的哈希映射,但比其他映射具有更高的內存要求。

http://incise.org/hash-table-benchmarks.html基準測試可以很好地比較性能和內存配置文件(2013-08-02:這個基準測試的原始結果:http://pastebin.com/jJL3rzWp)。

請注意,對於某些加載,b+tree可以比散列更容易緩存。