Поскольку в стандартной библиотеке C ++ не было определено хеш-таблицы, различные разработчики стандартных библиотек предоставили бы нестандартную хеш-таблицу, часто называемую hash_map
. Поскольку эти реализации не были написаны в соответствии со стандартом, все они имели тонкие различия в функциональности и гарантиях производительности.
Начиная с C ++ 11 в стандартную библиотеку C ++ добавлена реализация хеш-таблицы. Было решено использовать альтернативное имя для класса, чтобы предотвратить столкновения с этими нестандартными реализациями и предотвратить непреднамеренное использование нового класса разработчиками, у которых в коде было hash_table
.
Выбранное альтернативное имя unordered_map
, которое на самом деле более наглядно, поскольку оно намекает на интерфейс карты класса и неупорядоченную природу его элементов.