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 |
Класс выделения. |
Члены
Определение типа |
Описание |
Тип выделения для управления хранением. |
|
Тип постоянного итератора для управляемой последовательности. |
|
Тип постоянного итератора контейнера для управляемой последовательности. |
|
Тип постоянный указатель к элементу. |
|
Тип постоянной ссылки на элемент. |
|
Тип подписанного диапазона от 2 элементами. |
|
Тип хэш-функцию. |
|
Тип итератора для управляемой последовательности. |
|
Тип функции сравнения. |
|
Тип ключа упорядочивания. |
|
Тип итератора контейнера для управляемой последовательности. |
|
Тип сопоставляемого значения, связанные с каждым ключом. |
|
Тип указателя к элементу. |
|
Тип ссылки к элементу. |
|
Тип unsigned диапазона от 2 элементами. |
|
Тип элемента. |
Функция-член |
Описание |
Задает начало управляемой последовательности. |
|
Возвращает номер контейнера для значения ключа. |
|
Возвращает количество контейнеров. |
|
Получает размер контейнера. |
|
Задает начало управляемой последовательности. |
|
Задает конец управляемой последовательности. |
|
Удаляет все элементы. |
|
Находит число элементов, соответствующий указанному ключу. |
|
Добавляет элемент, созданный на месте. |
|
Добавляет элемент, созданный на месте с подсказкой. |
|
Проверяет, не присутствуют ли элементы. |
|
Задает конец управляемой последовательности. |
|
Поиск в диапазоне, соответствующий заданным ключом. |
|
Удаляет элементы в указанных положениях. |
|
Определяет элемент, соответствующий указанному ключу. |
|
Возвращает сохраненные объект выделения. |
|
Возвращает сохраненные объект хэш-функцию. |
|
Добавляет элементы. |
|
Возвращает сохраненные объект функции сравнения. |
|
Подсчитывает среднее элементов в контейнере. |
|
Возвращает максимальное количество контейнеров. |
|
Возвращает или задает максимальное количество элементов на сегмент. |
|
Возвращает максимальный размер управляемой последовательности. |
|
Повторно создает хэш-таблицу. |
|
Подсчитывает количество элементов. |
|
Меняет местами содержимое двух контейнеров. |
|
Создает объект контейнера. |
Оператор |
Описание |
Копирует хэш-таблицы. |
Заметки
Объект упорядочивает последовательность он контролирует, вызвав 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 пространство имен: