unordered_set unordered_map example c++ stl hashmap unordered-map

unordered_set - unordered_map c++ example



Diferencia entre hash_map y unordered_map? (1)

Recientemente descubrí que la implementación del mapa hash en C ++ se llamará unordered_map .

Cuando busqué por qué no solo estaban usando hash_map , descubrí que aparentemente hay problemas de compatibilidad con la implementación de hash_map que se resuelve hash_map (más sobre esto here ).

Esa página wiki no proporciona mucha más información, así que me pregunto si alguien conocía algunos de los problemas con hash_map que se resuelve hash_map .


Dado que no había una tabla hash definida en la biblioteca estándar de C ++, los diferentes implementadores de las bibliotecas estándar proporcionarían una tabla hash no estándar a menudo denominada hash_map . Debido a que estas implementaciones no se escribieron siguiendo un estándar, todas tenían diferencias sutiles en la funcionalidad y las garantías de rendimiento.

Comenzando con C++11 se ha agregado una implementación de la tabla hash al estándar de la biblioteca estándar de C ++. Se decidió utilizar un nombre alternativo para la clase para evitar colisiones con estas implementaciones no estándar y para evitar el uso inadvertido de la nueva clase por parte de los desarrolladores que tenían hash_table en su código.

El nombre alternativo elegido es unordered_map que en realidad es más descriptivo ya que insinúa la interfaz del mapa de la clase y la naturaleza desordenada de sus elementos.