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

3

我想知道是否有一种Qt库方法可以接受两个 QStringList,并从第二个列表中删除所有包含在第一个列表中的字符串。

2个回答

8

QListQStringList中没有现成的库函数。

但是你可以自己编写一个方法:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接