在 C++ 中,如何判断两个 unordered_map 是否相等?unordered_mapA== unordered_mapB 的比较原理
时间: 2023-11-06 15:09:08 浏览: 915
在C语言中比较两个字符串是否相等的方法
在 C++ 中,判断两个 unordered_map 是否相等,需要比较它们的大小和每个键值对是否相等。具体实现可以使用以下代码:
```c++
bool isEqual(unordered_map<int, int>& mapA, unordered_map<int, int>& mapB) {
if (mapA.size() != mapB.size()) {
return false;
}
for (auto& kv : mapA) {
auto it = mapB.find(kv.first);
if (it == mapB.end() || it->second != kv.second) {
return false;
}
}
return true;
}
```
其中,`mapA.size() != mapB.size()` 判断两个 unordered_map 的大小是否相等,如果不相等,则直接返回 false。然后遍历 mapA 中的每个键值对,查找 mapB 中是否存在相同的键值对,如果不存在或者值不相等,则返回 false。如果遍历完所有键值对都没有返回 false,则说明两个 unordered_map 相等。
unordered_mapA== unordered_mapB 的比较原理是先比较两个 unordered_map 的大小,如果不相等则直接返回 false。然后遍历 unordered_mapA 中的每个键值对,查找 unordered_mapB 中是否存在相同的键值对,如果不存在或者值不相等,则返回 false。如果遍历完所有键值对都没有返回 false,则说明两个 unordered_map 相等。
阅读全文