比较两个(非STL)映射是否相等

Mr.*_*Boy 3 c++ algorithm equality set

我们使用的第三方库本质上是一个地图/字典.它没有提供任何相互测试两个对象的方法,我们需要这个.

更具体地说,如果符合以下情况,则两个地图S1和S2被视为

  1. S1中的每个键都是S2中的键
  2. S2中的每个键都是S1中的键
  3. 对于S1中的每个键K,S1 [K] == S2 [K]

请注意,每个地图中的内部排序是无关紧要的,可能不依赖,因此无法直接比较内部结构/成员.我们有办法比较键和值的相等性.

这样做的最佳算法是什么?Pseudo C++很好,因为set类上的确切API足够接近我可以翻译的std :: map.

utn*_*tim 8

比较大小

  • 如果尺寸相等

    • 迭代第一组中的键和每个键:

      • 检查第二组中是否存在密钥

      • 检查密钥的元素是否相等

  • 如果至少一个元素不相等,则第一组中的一个键在第二个中不存在或者大小不相等,则这些组不相等.