Я пытаюсь изучить карты C++. Просто задавался вопросом о реализации карты STL. Я читал, это использует Дерево двоичного поиска.
Существует ли реализация хеш-таблицы в STL?
Как точно STL отображает пар Значения ключа хранилищ?
Пары ключ-значение хранятся в std :: pair
. Это шаблонная структура; элемент с именем первый
хранит ключ, а элемент с именем второй
сохраняет значение. Немного информации.
Некоторые библиотеки реализуют stdext::hash_map
, который имеет почти такой же интерфейс, как std::map
, но использует хэш-таблицу вместо двоичного дерева.
Узлы двоичного дерева располагаются в дереве в соответствии с ключом, и к каждому ключу прикреплено значение, либо целиком в том же узле, либо в виде указателя.
Типичные реализации STL основаны на красно-черных деревьях. C ++ TR1 предоставляет std :: tr1 :: unordered_map, который использует реализацию хеш-таблицы. Boost также предоставляет реализацию хэш-таблицы unordered_map.
В C ++ 11 теперь есть std :: unordered_map