История изменений
Исправление KivApple, (текущая версия) :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз. И это без всякого параллелизма. Ощущение, что его засунули в STL просто для галочки, чтобы был. Или чтобы можно было учить студентов программированию «знакомьтесь, это хештаблица» без подключения либ.
А ещё бывает, что std::map быстрее (в 2-3 раза), чем хештаблица (любая), но зависит от данных, конечно. Так то O(1) у хештаблицы это «в среднем», а O(logN) у std::map во всех случаях.
Я бы в первую очередь побенчил std::map, во вторую подключил abseil flat_hash_map, если можно подключать либы, и только в последнюю очередь тыкался бы с std::unordered_map.
Исправление KivApple, :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз. И это без всякого параллелизма. Ощущение, что его засунули в STL просто для галочки, чтобы был. Или чтобы можно было учить студентов программированию «знакомьтесь, это хештаблица» без подключения либ.
А ещё бывает, что std::map быстрее (в 2-3 раза), чем хештаблица (любая), но зависит от данных, конечно. Так то O(1) у хештаблицы это «в среднем», а O(logN) у std::map во всех случаях.
Исправление KivApple, :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз. И это без всякого параллелизма. Ощущение, что его засунули в STL просто для галочки, чтобы был. Или чтобы можно было учить студентов программированию «знакомьтесь, это хештаблица» без подключения либ.
А ещё бывает, что std::map быстрее (в 2-3 раза), чем хештаблица (любая), но зависит от данных, конечно.
Исправление KivApple, :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз. И это без всякого параллелизма. Ощущение, что его засунули в STL просто для галочки, чтобы был.
А ещё бывает, что std::map быстрее, чем хештаблица (любая), но зависит от данных, конечно.
Исправление KivApple, :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз. И это без всякого параллелизма.
А ещё бывает, что std::map быстрее, чем хештаблица (любая), но зависит от данных, конечно.
Исправление KivApple, :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз.
А ещё бывает, что std::map быстрее, чем хештаблица (любая), но зависит от данных, конечно.
Исходная версия KivApple, :
Не используй std::unordered_map, он медленный шо пипец. Используй abseil flat_hash_map. Я гонял тесты, на некоторых конфигурациях разница достигала 3-5 раз.