QVariantList l; ... QVariantList::iterator it = l.begin(); while ( it != l.end() ) { if ( needRemove(*it) ) it = l.erase( it ); else ++it; }
QMutableListIterator<int> i(list); while (i.hasNext()) { int val = i.next(); if (val < -32768 || val > 32767) i.remove(); }
template<class Pred>inline void remove(QVariantList& l, const Pred& needRemove) { l.erase(std::remove_if(l.begin(), l.end(), needRemove), l.end());}
int QList::removeAll ( const T & value ) Removes all occurrences of value in the list and returns the number of entries removed. Example: QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeAll("sun"); // list: ["cloud", "rain"] This function requires the value type to have an implementation of operator==().
bool needRemove(const QVariant& val) { // здесь выполняем твои запросы, и пересечения. //Возвращаем true если элемент нужно удалить}void doWork(QVariantList& list) { //Здесь происходит вызов needRemove для каждого элемента //списка, и те, для которых вернулось true удаляються remove(list, needRemove);}