我可以在两张地图上使用std::mismatch
吗?
在documentation中,有一个使用字符串的例子,我认为它与矢量类似。
Intersection of two STL maps的答案很有用,但我不确定如何在地图上使用std::mismatch
。
如果可能的话,它是否也可以用于嵌套地图?
答案 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}