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.