В большинстве случаев std::unordered_map работает быстрее, чем std::map. 2
Это связано с тем, что std::unordered_map использует хэш-таблицу, которая обеспечивает постоянную сложность времени выполнения операций (O(1)) независимо от размера карты. 23
std::map, в свою очередь, использует сбалансированное двоичное дерево, из-за чего операции вставки, удаления и поиска имеют логарифмическую сложность времени выполнения (O(log n)). 34
Однако есть случаи, когда из-за большого количества коллизий std::unordered_map может иметь больший постоянный множитель, что увеличивает его фактическую сложность по сравнению с std::map. 3
Таким образом, выбор между std::unordered_map и std::map зависит от требований к скорости выполнения операций и важности порядка элементов. 2