如果您想要爲鍵存儲多個值,那麼始終可能會在散列表和值之間打包列表。然而,我認爲效率相當低,因爲:C本地支持每個鍵多個值的散列表庫
散列表必須解決衝突,無論如何,某些類型的列表散步也是如此。當它發現與查詢關鍵字匹配的存儲桶中的第一個關鍵字時,它可能會繼續走過存儲區,而不是在跟隨另一個間接關係之後繼續走另一個列表,從而獲得更好的緩存性能。
是否有人知道默認支持這種庫的實現(並且理想情況下也是閃亮,快速,散列表以及BSD或類似許可的)?我已經瀏覽了一些圖書館,但沒有做我想要的,glib的datasets接近最近,雖然存儲記錄,而不是列表。
當然,就緩存性能而言,單跳鏈表與跳到新列表是一樣的嗎?在這兩種情況下,你都只是跟隨指針。 –
這個存儲桶有一個公平的機會已經在緩存中,一個單獨的列表不是很多。整個事情當然取決於實施,在桶本身僅僅是一個鏈表的情況下,你是完全正確的。 – barsoap
快速的谷歌給了我這個:http://uthash.sourceforge.net/ – Wolph