LINUX.ORG.RU

История изменений

Исправление AIv, (текущая версия) :

Да, и еще кэширование последнего запроса в каждой из N ячеек для ускорения разрулирования коллизий. Но в unordered_map поиск половинным делением по хэшу, а в описанном Вами случае гарантированные коллизии в ячейках за счет укороченного интервала, и еще неизвестно что хуже.

ИМНО тут нужно ограничивать диапазон ID (скажем short, 2^16) и юзать обычный вектор, а пустые ID хранить в set для ускорения выделения. Если конечно ТС-у 2^16 объектов хватит;-)

Исходная версия AIv, :

Да, и еще кэширование последнего запроса для ускорения разрулирования коллизий. Но в unordered_map поиск половинным делением по хэшу, а в описанном Вами случае коллизии, и еще неизвестно что хуже.

ИМНО тут нужно ограничивать диапазон ID (скажем short, 2^16) и юзать обычный вектор, а пустые ID хранить в set для ускорения выделения. Если конечно ТС-у 2^16 объектов хватит;-)