Я пытаюсь перебрать QStringList
, распечатав строку, а затем удалив ее из списка. Я не могу найти QStringList
метод, который работает! Например:
for ( QStringList::Iterator it = commandList.begin(); it != commandList.end(); ++it ) {
out << "Processed command: " << *it << endl;
*it.erase();
}
выдает ошибку компилятора: У ‘QList :: Iterator’ нет члена с именем ‘erase’
++it
может произойти сбой, если я удалю элемент в середине списка)Другим решением является использование QMutableStringListIterator, он может использоваться как любой другой итератор, но у него есть метод «удалить», который вы ищете.
QMutableStringListIterator i(list); // pass list as argument
while (i.hasNext()) {
i.remove(); // delete current item
}
Других решений пока нет …