Мелкие проблемы с boost, перебор unordered_map |
Здравствуйте, гость ( Вход | Регистрация )
Мелкие проблемы с boost, перебор unordered_map |
Гость_Гость_Алексей_*_* |
29.4.2012, 14:12
Сообщение
#1
|
Гости |
Всем привет.
У меня есть хэш таблички которые содержат в себе порядка 1000-2000 указателей... с доступом по unsigned int (boost::unordered_map<unsigned int, Object*> objects;) для быстрой выборки объектов по id, в свою очередь эти хэш таблички надо перебирать каждую 1/60 секунды... сам вопрос не накладно ли перебирать через итераторы? я пока не понимаю каким боком идет перебор через итераторы хеш таблицы это просто перебор с игнорированием свободных ячеек или что то более мудрёное?.... P.S.у меня не особо получается ковырять исходники поэтому решил спросит у тех кто знает... |
|
|
Iron Bug |
29.4.2012, 20:45
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
1/60 секунды - это не такое уж частое обращение. я не работала с хэшами, но вот тут человек проводил сравнения хэш-реализаций:
http://incise.org/hash-table-benchmarks.html для мелких таблиц unordered_map подойдёт. для более крупных ради оптимизации можно порыться в поисках лучшего варианта. да, и почему именно unordered? обычно они используются для объектов, которые нельзя упорядочить. а скорость поиска в упорядоченных множествах увеличивается в разы. единственный минус упорядоченности - медленная вставка. но если поиск осуществляется чаще, чем вставка, то имеет смысл посмотреть в сторону стандартных мапов. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 4:48 |