crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Мелкие проблемы с 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


Профессионал
*****

Группа: Модератор
Сообщений: 1586
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 218 раз(а)




Репутация:   12  


1/60 секунды - это не такое уж частое обращение. я не работала с хэшами, но вот тут человек проводил сравнения хэш-реализаций:
http://incise.org/hash-table-benchmarks.html
для мелких таблиц unordered_map подойдёт. для более крупных ради оптимизации можно порыться в поисках лучшего варианта.

да, и почему именно unordered? обычно они используются для объектов, которые нельзя упорядочить. а скорость поиска в упорядоченных множествах увеличивается в разы. единственный минус упорядоченности - медленная вставка. но если поиск осуществляется чаще, чем вставка, то имеет смысл посмотреть в сторону стандартных мапов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.6.2019, 13:13