#cpp #stl #map #хеширование
Зачем (в с++) существует контейнер map, если есть hash_map, который быстрее? Например,
std::map чем лучше std::unordered_map'a?
Ответы
Ответ 1
Нет понятия «лучше» или «хуже», есть различные свойства контейнера. std::map держит данные в отсортированном по ключу виде, в отличие от std::unordered_map. Если вам нужно это свойство, вам нужен std::map. Если нет, достаточно и std::unordered_map. (Как следствие отсортированности, например, в std::map есть функция lower_bound, которой нет в std::unordered_map.)Ответ 2
Как видно из самого названия контейнера std::unordered_map элементы этого контейнера не упорядочены. В то время как элементы контейнера std::map упорядочены в соответствии с ключом.Ответ 3
Для hash_map можно задать hash функцию.
Комментариев нет:
Отправить комментарий