我需要比較2 std :: unordered_map以檢查它們是否具有相同的鍵和相應的值。C++ compare unordered_map hash keys
地圖鍵是字符串,並獲得一些性能我想知道是否有可能比較他們的計算散列而不是原始字符串值(不關心由於碰撞可能的「誤報」)。
有沒有簡單的方法來實現這一目標? 喜歡的東西:
std::unordered_map<std::string, MyClass*> map1;
std::unordered_map<std::string, MyClass*> map2;
[...]
// make sure maps have the same size
auto itor1 = map1.begin();
auto itor2 = map2.begin();
while(itor1 != map1.end()){
// compare itor1 and itor2 hashed key
++itor1; ++itor2;
}
這個不清楚。 '比較'地圖是什麼意思?您是否試圖查看一張地圖中存在的鑰匙是否也出現在另一張地圖中?不僅僅是迭代第一張地圖,並且每個鍵都會在另一張地圖上找到()。這將是最快的方式。 – SergeyA
這就是我現在要做的。我想知道哈希是否存儲/訪問到任何地方,因此遍歷映射並比較它們,節省了鍵散列和查找()每個條目的時間。 – rickyviking