c++ - 比较两个 QMap

标签 c++ qt qmap

比较两个 QMaps 并删除不在第一个 map 中的条目并将第二个 map 的条目添加到第一个 map 中的最佳方法是什么?假设我有一张 map {1,2,3} 和一张 map {1,2,4} 我想保留第一张 map {1,2,4}。谢谢。

最佳答案

根据您的示例映射:

void removeNonUniqueThenAppend(QMap<QString, QString>& map1, QMap<QString, QString> map2) 
{
   QMap<QString, QString>::iterator iterator = map1.begin();

   while (iterator != map1.end()) {
      if (!map2.contains(iterator.key())) {
         iterator = map1.erase(iterator);
      }
      else {
         map2.remove(iterator.key());
         ++iterator;
      }
   }

   map1.unite(map2);
}

关于c++ - 比较两个 QMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479215/

相关文章:

c++ - QMap 但没有按键排序

C++ 从指针构造

c++ - Qt 4.8 信号/插槽在 moveToThread() 之后未调用

qt - QML 中的超时 XMLHttpRequest

c++ - fatal error : QtMultimediaWidgets/QtMultimediaWidgets: No such file or directory

c++ Qt常量违规?

c++ - 使用 FLANN 匹配从 OpenCV SIFT 列表中识别图像

c++ - Boost.interprocess Vector 作为类成员

C++多线程程序: Segementation fault with variables defined as class members

c++ - 是否可以在自己的模板类中使用 QMultiMap::ConstIterator?