从另一个QStringList中删除一个QStringList中包含的字符串

时间:2011-11-23 14:47:17

标签: c++ qt qstringlist

我想知道是否有人知道Qt库方法可能需要两个QStringList并从第二个列表中删除一个列表中包含的所有字符串。

2 个答案:

答案 0 :(得分:8)

QListQStringList中没有库函数。

但你可以编写自己的方法:

void remove(QStringList& list, const QStringList& toDelete){
  QStringListIterator i(toDelete);
  while(i.hasNext()){
    list.removeAll(i.next());
  }
}

答案 1 :(得分:3)

您可以使用QList::toSet()方法并执行一些my_set1.substract(my_set2),然后返回QSet::toList()。 但这只是为了解决转换代码问题。你最好用给定的列表自己编写逻辑代码,它会更快,不会涉及无用的内存分配(即使是暂时的)