给定两个大的 unordered_map,比如 map_a、map_b。如何有效判断map_a与map_b的信息相同?例如,如果 map_a 是{'a':3, 'b':2}
并且 map_b 是,{'a':3,'b':2}
那么它们是相同的。也就是说,对于map_a中的每个key k,map_a[k]=map_b[k]。
我的问题是如何有效地决定这个问题。我知道最糟糕的时候是O( max{map_a.size(), map_b.size()} )
。但是有一些观察可以快速确定 map_a 不等同于 map_b。例如,map_a.size()!=map_b.size()。
还有其他观察吗?我们可以使用 bucket_count() 和 bucket_size() 吗?
Wlog,假设 map_a 和 map_b 具有相同的散列函数和 (key,value) 类型。