unordered_map Class
Класс-шаблон описание объекта, что элементы управления последовательность элементов типа менять-длины std::pair<const Key, Ty>.Последовательность слабо упорядочена хэш-функции, разделах последовательность в упорядоченный набор подпоследовательностей вызвавших контейнерами.В каждом контейнере функция сравнения определяет, имеет ли какая-либо пара элементов эквивалентный упорядочение.Каждый элемент сохраняет 2 объекта, ключ сортировки и значение.Последовательность представлена способом, который разрешает уточняющего запроса, вставки и удаления произвольного элемента с несколькими операций, которые могут быть независимым числа элементов в последовательности (постоянного времени), по крайней мере, когда все контейнеры примерно одинаковой длины.В наихудшем случае, если все элементы в одном контейнере, число операций пропорционально количеству элементов в последовательности (линейном времени).Кроме того, вставка элемента объявляет никаких итераторы и удаление элемента делает недействительным только эти итераторы, указывающие на удаленном элементе.
template<class Key,
class Ty,
class Hash = std::hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<std::pair<const Key, Ty> > >
class unordered_map;
Параметры
Параметр |
Описание |
Key |
Тип ключа. |
Ty |
Сопоставленный тип. |
Hash |
Тип объекта хэш-функцию. |
Pred |
Тип объекта функции сравнения на равенство. |
Alloc |
Класс выделения. |
Члены
Определение типа |
Описание |
Тип выделения для управления хранением. |
|
Тип постоянного итератора для управляемой последовательности. |
|
Тип постоянного итератора контейнера для управляемой последовательности. |
|
Тип постоянный указатель к элементу. |
|
Тип постоянной ссылки на элемент. |
|
Тип подписанного диапазона от 2 элементами. |
|
Тип хэш-функцию. |
|
Тип итератора для управляемой последовательности. |
|
Тип функции сравнения. |
|
Тип ключа упорядочивания. |
|
Тип итератора контейнера для управляемой последовательности. |
|
Тип сопоставляемого значения, связанного с каждым ключом. |
|
Тип указателя к элементу. |
|
Тип ссылки к элементу. |
|
Тип unsigned диапазона от 2 элементами. |
|
Тип элемента. |
Функция-член |
Описание |
Находит элемент с указанным ключом. |
|
Задает начало управляемой последовательности. |
|
Возвращает номер контейнера для значения ключа. |
|
Возвращает количество контейнеров. |
|
Получает размер контейнера. |
|
Задает начало управляемой последовательности. |
|
Задает конец управляемой последовательности. |
|
Удаляет все элементы. |
|
Находит число элементов, соответствующий указанному ключу. |
|
Добавляет элемент, созданный на месте. |
|
Добавляет элемент, созданный на месте с подсказкой. |
|
Проверяющие не присутствуют ли элементы. |
|
Задает конец управляемой последовательности. |
|
Ищет диапазон, соответствующий указанному ключу. |
|
Удаляет элементы в указанных положениях. |
|
Определяет элемент, соответствующий указанному ключу. |
|
Возвращает сохраненные объект выделения. |
|
Возвращает сохраненные объект хэш-функцию. |
|
Добавляет элементы. |
|
Возвращает сохраненные объект функции сравнения. |
|
Подсчитывает среднее элементов в контейнере. |
|
Возвращает максимальное количество контейнеров. |
|
Возвращает или задает максимальное количество элементов на сегмент. |
|
Возвращает максимальный размер управляемой последовательности. |
|
Повторно создает хэш-таблицу. |
|
Подсчитывает количество элементов. |
|
Меняет местами содержимое двух контейнеров. |
|
Создает объект контейнера. |
Оператор |
Описание |
Находит или вставляет элемент с указанным ключом. |
|
Копирует хэш-таблицы. |
Заметки
Объект упорядочивает последовательность он контролирует, вызвав 2, сохраненного объекта, объект функции сравнения типов unordered_map::key_equal хэш-функция и объект типа unordered_map::hasher.Доступ к первому, сохраненный объект путем вызова функции-члена unordered_map::key_eq(); и второй, сохраненный объект путем вызова функции-члена unordered_map::hash_function().В частности, для всех значений X и Y type Keyвызов key_eq()(X, Y) возвращает значение true, только если значения аргументов имеют эквивалентные упорядочение 2; вызов hash_function()(keyval) создает распределение значений типа size_t.В отличие от класса шаблона unordered_multimap Classобъект класса шаблона unordered_map предоставляет то key_eq()(X, Y) всегда значение false для всех 2 элементов управляемой последовательности.(Ключи уникальными.)
Объект также хранит максимальный фактор нагрузки, указывающий требуемое максимум среднее количество элементов на сегмент.Если вставка причины элемента unordered_map::load_factor() для превышения максимального коэффициента нагрузки, контейнер увеличивает число сегментов и перестроения хэш-таблицы, как требуется.
Фактический порядок элементов в контролируемых зависит от последовательности хэш-функции, функция сравнения, порядок вставки, максимальное отношение нагрузки и текущее количество контейнеров.Обычно нельзя предугадать порядок элементов в управляемой последовательности.Можно всегда быть конечно, однако, любое подмножество элементов, имеющих эквивалентные смежно упорядочения управляемой последовательности.
Объект выборки и хранилище свободенов для последовательности она контролирует через сохраненные объект выделения типа unordered_map::allocator_type.Такой объект должен иметь один и тот же распределитель внешнего интерфейса в виде объекта класса шаблона allocator.Обратите внимание, что сохраненные объект выделения не копируется, когда объект контейнера присвоен.
Требования
заголовок:<unordered_map>
пространство имен: STD