次の問題があります。
std::string から boost::variant にマップする n 個のハッシュマップ (それらを A.1、A.2、...、An と呼びましょう) があり、それらを単一のハッシュマップにマージしたい (それを B と呼びましょう) ) 次のように:
- A.1、A.2、... An にキー K の同じ値が含まれている場合、B にはキー K の同じ値が含まれている必要があります。
- マップ A.1、A.2、... An のいずれにも存在しないキー K が存在する場合、B にはキー K から値 boost::blank へのマッピングが含まれている必要があります。
- A.1、A.2、... An に他の値とは異なるキー K の値が存在する場合、B にはキー K から値 boost::blank へのマッピングが含まれている必要があります。
私はこれをかなり頻繁に行う必要があり、それがボトルネックになることはわかっています。これを達成するための最も効率的な方法は何ですか? このようなハッシュマップをマージするためのライブラリ サポートはありますか?
編集:別のデータ構造がより適切な場合は、お知らせください。ただし、O(1) ルックアップが必要です