我需要比较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