Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Andrew Vladoff от Январь 31, 2013, 19:37



Название: Что лучше использовать QMap или QHash?
Отправлено: Andrew Vladoff от Январь 31, 2013, 19:37
Есть некоторые данные в  виде структуры, которым соответствует свой уникальный идентификатор int. Данные заполняются при запуске программы и в процессе не изменяются. Что лучше в плане быстродейтвия использовать QMap или QHash для поиска данных по идентификатору? Объём данных около 200 записей.


Название: Re: Что лучше использовать QMap или QHash?
Отправлено: Old от Январь 31, 2013, 19:38
Есть некоторые данные в  виде структуры, которым соответствует свой уникальный идентификатор int. Данные заполняются при запуске программы и в процессе не изменяются. Что лучше в плане быстродейтвия использовать QMap или QHash для поиска данных по идентификатору? Объём данных около 200 записей.
QHash


Название: Re: Что лучше использовать QMap или QHash?
Отправлено: Andrew Vladoff от Январь 31, 2013, 20:00
QHash
Если не трудно, обоснуйте.


Название: Re: Что лучше использовать QMap или QHash?
Отправлено: Old от Январь 31, 2013, 20:04
Если не трудно, обоснуйте.
А вы замерьте на тестах. :)


Название: Re: Что лучше использовать QMap или QHash?
Отправлено: Alex Custov от Январь 31, 2013, 20:04
QHash
Если не трудно, обоснуйте.

Документация:

Цитировать
QMap and QHash provide very similar functionality. The differences are:

QHash provides faster lookups than QMap. (See Algorithmic Complexity for details.)
When iterating over a QHash, the items are arbitrarily ordered. With QMap, the items are always sorted by key.
The key type of a QHash must provide operator==() and a global qHash(Key) function. The key type of a QMap must provide operator<() specifying a total order.


Название: Re: Что лучше использовать QMap или QHash?
Отправлено: Igors от Январь 31, 2013, 20:13
Есть некоторые данные в  виде структуры, которым соответствует свой уникальный идентификатор int. Данные заполняются при запуске программы и в процессе не изменяются. Что лучше в плане быстродейтвия использовать QMap или QHash для поиска данных по идентификатору? Объём данных около 200 записей.
На таком объеме данных выигрыш QHash по скорости ничтожен (если вообще есть). А вот возможность напр распечатать все данные в порядке сортировки может быть полезной. Поэтому QMap смотрится лучше