Hash Table v/s STL-карта в С++
Я пытаюсь изучить карты С++. Было просто интересно о реализации карты STL. Я читал, что использует двоичное дерево поиска.
Ответы
Ответ 1
Типичные реализации STL основаны на деревьях Red-Black. С++ TR1 предоставляет std:: tr1:: unordered_map, который использует реализацию хеш-таблицы. Boost также предоставляет реализацию хэш-таблицы unordered_map.
С++ 11 теперь имеет std::unordered_map
Ответ 2
-
В некоторых библиотеках реализована stdext::hash_map
, которая имеет почти тот же интерфейс, что и std::map
, но использует хеш-таблицу вместо двоичного дерева.
-
Узлы двоичного дерева расположены в дереве в соответствии с ключом, и каждый ключ имеет значение, прикрепленное либо в целом в том же node, либо как указатель.
Ответ 3
Пара ключей-значений хранится в std::pair
. Его шаблонная структура; элемент с именем first
хранит ключ, а элемент с именем second
сохраняет значение. Некоторая информация.