两个相同map容器内容不重复比较
时间: 2023-08-04 14:09:26 浏览: 68
如果您想比较两个相同的 map 容器的内容是否相同,可以使用以下方法:
1. 遍历两个 map 容器,比较每个键值对是否相同。这种方法比较繁琐,但可以确保比较结果正确。
2. 将两个 map 容器中的键值对分别存储在两个 vector 容器中,然后对两个 vector 容器进行排序,最后比较两个 vector 容器是否相同。这种方法比较简单,但可能会因为排序造成额外的时间和空间复杂度。
具体实现可以参考以下示例代码:
```c++
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
bool compareMaps(map<int, int>& map1, map<int, int>& map2) {
if (map1.size() != map2.size()) {
return false;
}
vector<pair<int, int>> vec1;
vector<pair<int, int>> vec2;
for (auto& p : map1) {
vec1.push_back(p);
}
for (auto& p : map2) {
vec2.push_back(p);
}
sort(vec1.begin(), vec1.end());
sort(vec2.begin(), vec2.end());
return vec1 == vec2;
}
int main() {
map<int, int> map1{{1, 2}, {3, 4}, {5, 6}};
map<int, int> map2{{5, 6}, {3, 4}, {1, 2}};
map<int, int> map3{{1, 2}, {3, 4}};
cout << compareMaps(map1, map2) << endl; // expect true
cout << compareMaps(map1, map3) << endl; // expect false
return 0;
}
```
阅读全文