我有以下問題:算法:合併的std :: unordered_maps
我有n個包含HashMap(我們姑且稱之爲A.1,A.2,...,An)的,從的std :: string映射到boost :: variant,我想把它們合併成一個hashmap(讓我們稱之爲B)如下:
- 如果A.1,A.2,... An包含相同的鍵值K ,那麼B應該包含與關鍵字K相同的值。
- 如果在映射A.1,A.2,... An之一中不存在某個關鍵K,則B應該包含從鍵K值boost :: blank。
- 如果A.1,A.2,... A.n中的鍵K存在一些與其他值不同的值,那麼B應該包含從鍵K到值boost :: blank的映射。
我必須這樣做很多,我知道它會成爲一個瓶頸。什麼是最有效的方法來實現這一目標?任何圖書館支持合併這樣的hashmaps?
編輯:如果其他數據結構更合適,請讓我知道。但是,我確實需要O(1)查找
可以在飛行中做到這一點嗎?即在更改任何源n圖時維護一些結果圖? –
我想現在你有一些O(n * m)算法,其中n是地圖數量,m是條目數量。 –