Название: Удаление элементов QVector [РЕШЕНО] Отправлено: Larry от Сентябрь 28, 2015, 11:29 Добрый день, форумчане.
Возникла проблема с удалением элементов из QVector<QMap<QString, QVariant> >. Пытался удалять через remove, но все равно данные остаются...Подскажите где моя ошибка: Код: void filter() Название: Re: Удаление элементов QVector Отправлено: Racheengel от Сентябрь 28, 2015, 11:43 После v_points.remove(index); вы перескочите один элемент (следующий за удаленным), т.к. index инкрементируется в строчке с for. Ну т.е. если вы удаляете элемент с index = 5, то после операции remove(5) на место 5-го придет следующий, 6-й. Но поскольку в цикле стоит index++, то он сместится на бывший 7-й элемент, а бывший 6-й будет необработан.
Должно сработать так: v_points.remove(index); index--; Либо организуйте цикл с "конца", типа for(int index = v_points.count()-1; index >= 0; index--) Название: Re: Удаление элементов QVector Отправлено: Larry от Сентябрь 28, 2015, 11:47 Да спасибо. Вы меня опередили :). Пока печатал Вы уже ответили. Спасибо большое.
Название: Re: Удаление элементов QVector Отправлено: Racheengel от Сентябрь 28, 2015, 11:50 Да не за что :)
|