Быстрое удаление дубликатов, QList<QPoint> |
Здравствуйте, гость ( Вход | Регистрация )
Быстрое удаление дубликатов, QList<QPoint> |
RazrFalcon |
20.10.2012, 4:45
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Как быстрее всего удалить дубликаты в QList<QPoint>? Может содержать до 100'000 элементов.
Пробовал перед добавлением в list делать проверку list.contains() - но это очень долго выходит. И чем больше список, тем дольше. Если если другой способ хранить 2-е точки в списке - с удовольствием выслушаю. |
|
|
Алексей1153 |
20.10.2012, 20:38
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
std::set<QPoint> - будет хранить точки без повторения и в отсортированном порядке (согласно оператору <, который придётся определить в субклассе). При попытке добавления повторной точки, новая точка заменит старую (в данном случае ничего не изменится)
std::multiset<QPoint> - всё то же самое, только повторные будут идти друг за другом в списке субкласс примерно такой
|
|
|
RazrFalcon |
20.10.2012, 21:21
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Хм, по сути та же проверка наличия, только чуть быстрее и на std?
И вроде так же можно через QSet сделать, но по дефолту он не хавает QPoint. |
|
|
Алексей1153 |
21.10.2012, 7:24
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
Текстовая версия | Сейчас: 5.12.2024, 2:58 |