Быстро найти int в контейнере, какой пошустрее? |
Здравствуйте, гость ( Вход | Регистрация )
Быстро найти int в контейнере, какой пошустрее? |
trdm |
14.10.2009, 23:52
Сообщение
#1
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
Пока использую QList<int>.contains(int),
Но думаю нужно заменить на более шустрый. Есть такие? Например QSet<int> ? |
|
|
DIMEDROLL |
15.10.2009, 10:43
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
QSet быстр, ищет за константное время, эт значит что поиск любого элемента занимает одно и то же время и не зависит от кол-ва элементов.
Быстрым так же будет QVector если он будет отсортирован, для поиска элемента используешь алгоритм qBinaryFind, тоесть так:
так у тебя будет быстрое добавление элементов, быстрый поиск(логарифмическое время) и минимальное кол-во потребляемой памяти. Медленным будет только сортировка, но если элементы не будут постоянно добавлятся то ее нужно будет вызвать только раз. з.ы код не компилил, надеюсь идея ясна |
|
|
trdm |
15.10.2009, 11:55
Сообщение
#3
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 22:12 |