Um unordered_map é realmente mais rápido que um mapa na prática?

Certamente, o desempenho de pesquisa de um unordered_map é constante, em média, e o desempenho de pesquisa de um mapa é O (logN).

Mas é claro que, para encontrar um objeto em um mapa não ordenado, precisamos:

hash a chave que queremos encontrar.igualdade_compare a chave com todas as chaves no mesmo balde.

Enquanto em um mapa, precisamos simplesmente less_than comparar a chave procurada com as chaves log2 (N), onde N é o número de itens no mapa.

Eu me perguntava qual seria a diferença real de desempenho, dado que a função hash adiciona sobrecarga e uma igualdade_comparação não é mais barata do que uma comparação_diferente.

Em vez de incomodar a comunidade com uma pergunta que eu poderia responder, escrevi um teste.

Compartilhei os resultados abaixo, caso alguém ache isso interessante ou útil.

É claro que mais respostas são convidadas se alguém puder e estiver disposto a adicionar mais informações.

questionAnswers(2)

yourAnswerToTheQuestion