Поделиться через


unordered_multimap Class

Класс-шаблон описание объекта, что элементы управления последовательность менять- длины элементов типа std::pair<const Key, Ty>.Последовательность слабо упорядочена хэш-функции, которое сортирует последовательность в упорядоченный набор, вызываемых подпоследовательностей контейнерами.В каждом контейнере функция сравнения определяет, имеет ли какая-либо пара элементов эквивалентный упорядочение.Каждый элемент сохраняет 2 объекта, ключ сортировки и значение.Последовательность представлена способом, который разрешает уточняющего запроса, вставки и удаления произвольного элемента с несколькими операций, которые могут быть независимым числа элементов в последовательности (постоянного времени), по крайней мере, когда все контейнеры примерно одинаковой длины.В наихудшем случае, если все элементы в одном контейнере, число операций пропорционально количеству элементов в последовательности (линейном времени).Кроме того, вставка элемента объявляет никаких итераторы и удаление элемента делает недействительным только эти итераторы, указывающие на удаленном элементе.

template<class Key,
    class Ty,
    class Hash = std::tr1::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<Key> >
    class unordered_multimap;

Параметры

Параметр

Описание

Key

Тип ключа.

Ty

Сопоставленный тип.

Hash

Тип объекта хэш-функцию.

Pred

Тип объекта функции сравнения на равенство.

Alloc

Класс выделения.

Члены

Определение типа

Описание

unordered_multimap::allocator_type

Тип выделения для управления хранением.

unordered_multimap::const_iterator

Тип постоянного итератора для управляемой последовательности.

unordered_multimap::const_local_iterator

Тип постоянного итератора контейнера для управляемой последовательности.

unordered_multimap::const_pointer

Тип постоянный указатель к элементу.

unordered_multimap::const_reference

Тип постоянной ссылки на элемент.

unordered_multimap::difference_type

Тип подписанного диапазона от 2 элементами.

unordered_multimap::hasher

Тип хэш-функцию.

unordered_multimap::iterator

Тип итератора для управляемой последовательности.

unordered_multimap::key_equal

Тип функции сравнения.

unordered_multimap::key_type

Тип ключа упорядочивания.

unordered_multimap::local_iterator

Тип итератора контейнера для управляемой последовательности.

unordered_multimap::mapped_type

Тип сопоставляемого значения, связанные с каждым ключом.

unordered_multimap::pointer

Тип указателя к элементу.

unordered_multimap::reference

Тип ссылки к элементу.

unordered_multimap::size_type

Тип unsigned диапазона от 2 элементами.

unordered_multimap::value_type

Тип элемента.

Функция-член

Описание

unordered_multimap::begin

Задает начало управляемой последовательности.

unordered_multimap::bucket

Возвращает номер контейнера для значения ключа.

unordered_multimap::bucket_count

Возвращает количество контейнеров.

unordered_multimap::bucket_size

Получает размер контейнера.

unordered_multimap::cbegin

Задает начало управляемой последовательности.

unordered_multimap::cend

Задает конец управляемой последовательности.

unordered_multimap::clear

Удаляет все элементы.

unordered_multimap::count

Находит число элементов, соответствующий указанному ключу.

unordered_multimap::emplace

Добавляет элемент, созданный на месте.

unordered_multimap::emplace_hint

Добавляет элемент, созданный на месте с подсказкой.

unordered_multimap::empty

Проверяет, не присутствуют ли элементы.

unordered_multimap::end

Задает конец управляемой последовательности.

unordered_multimap::equal_range

Поиск в диапазоне, соответствующий заданным ключом.

unordered_multimap::erase

Удаляет элементы в указанных положениях.

unordered_multimap::find

Определяет элемент, соответствующий указанному ключу.

unordered_multimap::get_allocator

Возвращает сохраненные объект выделения.

unordered_multimap::hash_function

Возвращает сохраненные объект хэш-функцию.

unordered_multimap::insert

Добавляет элементы.

unordered_multimap::key_eq

Возвращает сохраненные объект функции сравнения.

unordered_multimap::load_factor

Подсчитывает среднее элементов в контейнере.

unordered_multimap::max_bucket_count

Возвращает максимальное количество контейнеров.

unordered_multimap::max_load_factor

Возвращает или задает максимальное количество элементов на сегмент.

unordered_multimap::max_size

Возвращает максимальный размер управляемой последовательности.

unordered_multimap::rehash

Повторно создает хэш-таблицу.

unordered_multimap::size

Подсчитывает количество элементов.

unordered_multimap::swap

Меняет местами содержимое двух контейнеров.

unordered_multimap::unordered_multimap

Создает объект контейнера.

Оператор

Описание

unordered_multimap::operator=

Копирует хэш-таблицы.

Заметки

Объект упорядочивает последовательность он контролирует, вызвав 2, сохраненного объекта, объект функции сравнения типов unordered_multimap::key_equal хэш-функции и объект типа unordered_multimap::hasher.Доступ к первым, сохраненный объект, вызвав функцию-член unordered_multimap::key_eq(); и второй, сохраненный объект, вызвав функцию-член unordered_multimap::hash_function().В частности, для всех значений X и Y типа Key, вызов key_eq()(X, Y) возвращает значение true, только если значения аргументов имеют эквивалентные упорядочение 2; вызов hash_function()(keyval) создает распределение значений типа size_t.В отличие от класса unordered_map Class шаблона, объект класса unordered_multimap шаблона не гарантирует, что key_eq()(X, Y) всегда false для всех 2 элементов управляемой последовательности.(Ключи не должны быть уникальными).

Объект также хранит максимальный фактор нагрузки, указывающее максимально необходимый тип среднее количество элементов на сегмент.Если вставка элемента приводит к unordered_multimap::load_factor() превышать максимальный фактор нагрузки увеличивается число сегментов, то контейнер и перестроит хэш-таблицы, как требуется.

Фактический порядок элементов в контролируемых зависит от последовательности хэш-функции, функция сравнения, порядок вставки, максимальное отношение нагрузки и текущее количество контейнеров.Обычно нельзя предугадать порядок элементов в управляемой последовательности.Можно всегда быть конечно, однако, любое подмножество элементов, имеющих эквивалентные смежно упорядочения управляемой последовательности.

Объект выборки и хранилище свободенов для последовательности она контролирует через сохраненные объект выделения типа unordered_multimap::allocator_type.Такой объект должен иметь один и тот же распределитель внешний интерфейс как объект класса allocator шаблона.Обратите внимание, что сохраненные объект выделения не копируется, когда объект контейнера присвоен.

Требования

заголовок: <unordered_map>

std пространство имен:

См. также

Ссылки

<unordered_map>

unordered_multimap Class