當前我有一個嵌套的散列表。內部映射鍵具有非常大的範圍,但外部映射鍵只有10種不同的可能的字符串。unordered_map vs vector +少量元素的自定義散列
unordered_map<string, unordered_map<int, list<string>>> nestedHashMap;
難道是更有效的對我來說,切換到
vector<unordered_map<int, list<string>>>
,並有自己的散列函數
static int hashFunc(string stringToBeHashed){
switch(stringToBeHashed){
case "example1":
return 0;
.
.
.
case "example10":
return 9;
default:
return -1;
}
}
,做自己的哈希前的每一個眼神嗎?在空間複雜性方面,由於unordered_map是一個基於節點的容器,我認爲這種向量方法會爲我節省一些unordered_map所需的每節點內存。此外,我假設內部散列映射將保證最快的檢索,即使密鑰是一個int。關鍵有很大的範圍,所以我不認爲在這裏使用矢量會提高性能。對?任何意見/提示,將不勝感激。
內存在這裏不是問題。
嘗試各種變化並測量其性能。然後回來告訴其他人,這樣我們都可以學習。 –
當你在它的時候,考慮'矢量'來代替'list '。結果可能會令人震驚和沮喪。 –
user4581301