C++ 如何在2张地图上保持同步循环?

C++ 如何在2张地图上保持同步循环?,c++,iterator,compare,std,C++,Iterator,Compare,Std,如何在2个地图上同步循环? 可能是map1或map2包含更多键。 如何设置首选项?并增加相应的迭代器 2个贴图的示例值: 4 7 10 11 12 13 14 3 4 7 8 10 11 12 13 14 map1不包含“3” std::map1; 地图地图2; 自动itA=开始(map1); 自动itB=开始(map2); 而(itA!=结束(map1)| itB!=结束(map2)) { 如果(itA!=结束(map1)) { ++itA; } 如果(itB!=结束(map2)) {

如何在2个地图上同步循环?
可能是map1或map2包含更多键。
如何设置首选项?并增加相应的迭代器

2个贴图的示例值:

4 7 10 11 12 13 14 
3 4 7 8 10 11 12 13 14 
map1不包含“3”

std::map1;
地图地图2;
自动itA=开始(map1);
自动itB=开始(map2);
而(itA!=结束(map1)| itB!=结束(map2))
{
如果(itA!=结束(map1))
{
++itA;
}
如果(itB!=结束(map2))
{
++招标书;
}
}
使用此代码将导致您尝试比较两个不相等的数字/值。
因此,必须停止递增一个或另一个迭代器,直到两个值相等。

我找到了答案:

if(map1.first == map2.first){
    if(itA != end(map1)){
        ++itA;
    }
    if(itB != end(map2)){
        ++itB;
    }
}
else if(map1.first < map2.first){
    if(itA != end(map1)){
        ++itA;
    }
}
else if(map1.first > map2.first){
    if(itB != end(map2)){
        ++itB;
    }
} 
if(map1.first==map2.first){
如果(itA!=结束(map1)){
++itA;
}
如果(itB!=结束(map2)){
++招标书;
}
}
else if(map1.firstmap2.first){
如果(itB!=结束(map2)){
++招标书;
}
} 

你到底想实现什么?@AlanBirtles有一件事:找到两个地图中都没有的数字。因此,链接主题无法回答你的问题?键或不在两个地图中的值?@AlanBirtles,键“auto it=map1.find([value]);”很容易,但是确定上述循环代码的迭代器在相遇之前递增的正确“OR”语句可以删除第一个
if
块,并将
else if
s更改为
if=
if(map1.first == map2.first){
    if(itA != end(map1)){
        ++itA;
    }
    if(itB != end(map2)){
        ++itB;
    }
}
else if(map1.first < map2.first){
    if(itA != end(map1)){
        ++itA;
    }
}
else if(map1.first > map2.first){
    if(itB != end(map2)){
        ++itB;
    }
}