两张地图不匹配

时间:2015-11-12 20:28:07

标签: c++ stdmap

我可以在两张地图上使用std::mismatch吗?

documentation中,有一个使用字符串的例子,我认为它与矢量类似。

Intersection of two STL maps的答案很有用,但我不确定如何在地图上使用std::mismatch

如果可能的话,它是否也可以用于嵌套地图?

1 个答案:

答案 0 :(得分:2)

是的,你可以,std::map有双向迭代器,而std::mismatch需要输入迭代器作为参数:

std::map<int, int> A {{1, 2}, {2, 3}, {4, 4}};
std::map<int, int> B {{1, 2}, {2, 4}, {4, 4}};
auto miss = std::mismatch(A.begin(), A.end(), B.begin());
std::cout << "{" << miss.first->first << ", " << miss.first->second 
          << "} != {" << miss.second->first << ", " 
          << miss.second->second << "}" << std::endl;

输出:

{2, 3} != {2, 4}

LIVE DEMO