![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
trdm |
![]()
Сообщение
#1
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
Пока использую QList<int>.contains(int),
Но думаю нужно заменить на более шустрый. Есть такие? Например QSet<int> ? |
|
|
rnd |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 54 Регистрация: 22.7.2009 Пользователь №: 930 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Подойдет, только учтите, set хранит только уникальный значения, т.е. два раза вставить одно число не получится
а вообще: контейнеры |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Лучше сразу смотреть табличку в разделе Алгоритмическая сложность
|
|
|
DIMEDROLL |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
QSet быстр, ищет за константное время, эт значит что поиск любого элемента занимает одно и то же время и не зависит от кол-ва элементов.
Быстрым так же будет QVector если он будет отсортирован, для поиска элемента используешь алгоритм qBinaryFind, тоесть так:
так у тебя будет быстрое добавление элементов, быстрый поиск(логарифмическое время) и минимальное кол-во потребляемой памяти. Медленным будет только сортировка, но если элементы не будут постоянно добавлятся то ее нужно будет вызвать только раз. з.ы код не компилил, надеюсь идея ясна ![]() |
|
|
rnd |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 54 Регистрация: 22.7.2009 Пользователь №: 930 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
to Litkevich Yuriy,
сравните мою и вашу ссылки:) |
|
|
trdm |
![]()
Сообщение
#6
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
rnd, по-русски читать многим проще чем по английски
|
|
|
Tonal |
![]()
Сообщение
#8
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
Хешь для интов может давать плохое распределение, и тогда QSet::contains может стать практически линейной сложности.
![]() Так что лучше сравнить на реальных данных что лучше - сортированный QVector с бинарным поиском или QSet. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 15:22 |