Вычитание одного QStringList из другого. |
Здравствуйте, гость ( Вход | Регистрация )
Вычитание одного QStringList из другого. |
RazrFalcon |
13.5.2011, 15:47
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Куда копать?
Имеется 2-а QStringList. Из первого нужно вырезать все, что есть во втором. При том, что второй содержит только часть строки, которую нужно найти и вырезать в первом. Если бы строки были одинаковые/полные. То ничего сложного:
Пока что реализовал так:
Может есть более простой/правильный способ? Сообщение отредактировал RazrFalcon - 13.5.2011, 15:50 |
|
|
Litkevich Yuriy |
13.5.2011, 21:02
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Выбранный способ неправильный.
Ты сделал такую вещь: это даёт тебе гарантию, что ты не выйдишь за пределы индекса списка.Но. Когда цикл находится на индексе = 4 и происходит совпадение условия - удаляешь 1 элемент. Теперь кол-во элементов стало на 1-цу меньше, соответственно индексы сдвинулись, тот элемент что был 5-ым, стал четвёртым, однако цикл инкрементирует индекс и переходит к номеру 5, который раньше был номер 6. Т.е. всякий раз, когда условие удаления выполнится, ты пропускаешь следующий элемент в списке. В подобных ситуациях, когда в контейнере нужно удалять элемент в цикле, лучше вместо удаления элементов создавать новый список и в цикле копировать в него данные, которые должны остаться. И этот новый список будет результатом работы (функции). |
|
|
RazrFalcon |
13.5.2011, 21:35
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
О. Спасибо. Не подумал. У меня список большой, и вылетов еще не было. Но идею понял.
|
|
|
novichkov |
22.5.2011, 10:17
Сообщение
#4
|
Студент Группа: Участник Сообщений: 64 Регистрация: 20.3.2008 Из: Северодвинск Пользователь №: 128 Спасибо сказали: 6 раз(а) Репутация: 1 |
А я всегда думал, что в таких случаях нужно использовать mutable iterators.
|
|
|
Текстовая версия | Сейчас: 18.4.2024, 7:44 |