Check if map in C++ contains all the keys from another map回答了我的问题,但是我不确定我们如何同时遍历两个 map 。

我知道如何遍历一个,如图所示:

typedef std::map<QString, PropertyData> TagData;
TagData original = readFileToMap("FoxHud.bak");

for (TagData::const_iterator tagIterator = original.begin(); tagIterator != original.end(); tagIterator++) {
}

最佳答案

如果要同时迭代两个映射,则可以执行以下操作:

if (map1.size() != map2.size())
  ; // problem
else
{
  for (map<X,Y>::const_iterator it1 = map1.begin(),
                                it2 = map2.begin();
       it1 != map1.end() && it2 != map2.end();
       ++it1 , ++it2)
  {
    // ...
  }
}

现在,如果要以不同的“速度”遍历2个映射,则使用while循环来独立调节it1和it2的增量将更为合适。有关示例,请参见Golgauth's answer

07-24 09:15