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.