Как удалить две последовательные строки с помощью итератора?
Я пытаюсь создать форму для сохранения пользователя и пароля с помощью QT3.3. Но я также хочу изменить и удалить имя пользователя и пароль. Я могу удалить имя пользователя, но я не могу удалить следующую следующую строку. Код, который я использовал, это:
QStringList::Iterator it;
it = qFind(lines.begin(), lines.end(), str);
if(it != lines.end())
{
lines.erase(it);
}
Может ли кто-нибудь предложить какой-либо способ?
QStringList::erase
возвращает итератор, который ссылается на элемент, который находится за элементом, который вы только что удалили, поэтому:
it = lines.erase(it);
// it now references the line after the erased one, so go again to delete that:
if(it != lines.end()) {
lines.erase(it);
}
Кроме того, обязательно: есть ли причина, по которой вы используете Qt 3.3? Это древнее.