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