比较两个map取出相同值
时间: 2023-06-19 20:04:38 浏览: 54
可以使用两个for循环来比较两个map中的值是否相同,具体代码如下:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> map1 {{1, "one"}, {2, "two"}, {3, "three"}};
std::map<int, std::string> map2 {{1, "one"}, {3, "three"}, {4, "four"}};
std::map<int, std::string> commonValues;
for (const auto& kv1 : map1) {
for (const auto& kv2 : map2) {
if (kv1.second == kv2.second) {
commonValues.insert(kv1);
break;
}
}
}
for (const auto& kv : commonValues) {
std::cout << kv.first << " " << kv.second << std::endl;
}
return 0;
}
```
上述代码中,我们首先定义了两个map,然后定义了一个用于存储相同值的map,接着使用两个for循环遍历两个map,比较每一个值是否相同,如果相同则将该值插入到commonValues中,最后遍历commonValues输出相同的键值对。