hash_multimap (STL/CLR)
Класс-шаблон описывает объект, элементы управления менять-длины последовательность элементов, имеющей двунаправленный доступ.Контейнер hash_multimap используется для управления последовательность элементов, такие как хэш-таблицы, каждая запись в таблице список связанный двунаправленным узлов, каждый узел одного элемента.Элемент состоит из клавиш для упорядочения последовательности и сопоставляемого значения, которое проходит вперед для езды.
В приведенном ниже описании GValue совпадают:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
Здесь:
GKey так же, как и Key если последний не будет типа ref. в этом случае это Key^
GMapped так же, как и Mapped если последний не будет типа ref. в этом случае это Mapped^
template<typename Key,
typename Mapped>
ref class hash_multimap
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::IHash<Gkey, GValue>
{ ..... };
Параметры
Ключ
Тип ключа для элемента в управляемой последовательности.Сопоставляется
Тип дополнительного компонента элементов в управляемой последовательности.
Члены
Определение типа |
Описание |
---|---|
Тип постоянного итератора для управляемой последовательности. |
|
Тип постоянной ссылки на элемент. |
|
Тип постоянного обратного итератора для управляемой последовательности. |
|
Тип диапазона (возможно, подписанного a 2) между элементами. |
|
Тип универсального интерфейса для контейнера. |
|
Тип итератора для универсального интерфейса для контейнера. |
|
Тип обратного итератора для универсального интерфейса для контейнера. |
|
Тип элемента для универсального интерфейса для контейнера. |
|
Делегат хэширования для клавиш. |
|
Тип итератора для управляемой последовательности. |
|
Делегат упорядочения для 2 клавиш. |
|
Тип упорядочивание клавиш. |
|
Тип сопоставляемого значения, связанные с каждой клавиша. |
|
Тип ссылки к элементу. |
|
Тип обратного итератора для управляемой последовательности. |
|
Тип диапазона (non-отрицательного 2) между элементами. |
|
Делегат упорядочения для 2 значений элементов. |
|
Тип элемента. |
Функция-член |
Описание |
---|---|
Задает начало управляемой последовательности. |
|
Подсчитывает количество контейнеров. |
|
Удаляет все элементы. |
|
Подсчитывает элементы, соответствующие указанному ключу. |
|
Проверяет, не присутствуют ли элементы. |
|
Задает конец управляемой последовательности. |
|
Ищет диапазон, соответствующий указанному ключу. |
|
Удаляет элементы в указанных положениях. |
|
Определяет элемент, соответствующий указанному ключу. |
|
Копирует делегат хэширования для клавиш. |
|
Создает объект контейнера. |
|
Добавляет элементы. |
|
Копирует делегат упорядочения для 2 клавиш. |
|
Подсчитывает среднее элементов в контейнере. |
|
Находит начало диапазона, соответствующий указанному ключу. |
|
Создает значение объекта. |
|
Возвращает или задает максимальное количество элементов на сегмент. |
|
Задает начало обратной управляемой последовательности. |
|
Повторно создает хэш-таблицу. |
|
Задает конец обратной управляемой последовательности. |
|
Подсчитывает количество элементов. |
|
Меняет местами содержимое двух контейнеров. |
|
Копирует управляемую последовательность, в новый массив. |
|
Находит конец диапазона, соответствующий указанному ключу. |
|
Копирует делегат упорядочения для 2 значений элементов. |
Оператор |
Описание |
---|---|
Заменяет управляемую последовательность. |
Интерфейсы
Интерфейс |
Описание |
---|---|
Повторяющиеся объект. |
|
Последовательность через элементы. |
|
Обслуживание группу в составе элементы. |
|
Последовательность через типизированные элементы. |
|
Обслуживание группу в составе типизированные элементы. |
|
IHash<Клавиша значение> |
Универсальный шаблон контейнер службы. |
Заметки
Объект выборки и хранилище свободенов для последовательности она контролирует как отдельные узлы в связанном списке двунаправленном.К доступу скорости, объект также поддерживает массив указателей менять-длины в список (хэш-таблица), эффективно, как последовательность всего списка подсписков или контейнеры.Он не вставляет элементы в контейнере, он хранит ordered, изменяя связи между узлами, никогда, копируя содержимое одного узла в другой.Это означает, что можно вставлять и удалять элементы свободно, не нарушая остальных элементов.
Объект упорядочивает каждый контейнер он контролирует, вызвав, сохраненный объект делегата типа hash_set::key_compare (STL/CLR).Можно указать сохраненные объект делегата при построении hash_set; если не указан ни один объект делегата, то значением по умолчанию является сравнение operator<=(key_type, key_type).
Можно получить доступ, сохраненный объект делегата, вызвав функцию-член hash_set::key_comp (STL/CLR)().Такой объект делегата должен определить ключом между клавишами типа hash_set::key_type (STL/CLR).Это означает для всех 2 клавиш X и Y:
key_comp()(X, Y) возвращает один и тот же логический результат при каждом вызове.
Если key_comp()(X, Y) && key_comp()(Y, X) значение равно true, то говорят, что имеют X и Y эквивалентный упорядочение.
Любое правило упорядочения, который ведет себя как operator<=(key_type, key_type), operator>=(key_type, key_type) или operator==(key_type, key_type) определяет eqivalent упорядочение.
Обратите внимание, что контейнер содержит элементы только что клавиши которых элемент с ключом (и, относится к тому же значению) смежны целого числа в контейнере.В отличие от класса hash_map (STL/CLR) шаблона, объект класса hash_multimap шаблона не требует клавиш для всех элементов уникальными.(Двух или нескольких клавиш могут иметь эквивалентный упорядочение).
Объект, указывающий, какой контейнер должен содержать заданное упорядочивание клавиши путем вызова делегата сохраненный объект типа hash_set::hasher (STL/CLR).Доступ к этому, сохраненный объект, вызвав функцию-член hash_set::hash_delegate (STL/CLR)() чтобы получить целое число, в зависимости от значения ключа.Можно указать сохраненные объект делегата при построении hash_set; если не указан ни один объект делегата, то значение по умолчанию - функция System::Object::hash_value(key_type).Это означает для всех клавиш X и Y:
hash_delegate()(X) возвращает один и тот же результат целого числа при каждом вызове.
Если X и Y имеет эквивалентный упорядочение, hash_delegate()(X) должно возвращать один и тот же результат в виде целого числа, как hash_delegate()(Y).
Каждый элемент содержит отдельный ключ и сопоставленное значение.Последовательность представлена способом, который разрешает уточняющего запроса, вставки и удаления произвольного элемента с несколькими операциями, независимо от числа элементов в последовательности (постоянного времени) -- по крайней мере в лучше всего вариантов.Кроме того, вставка элемента объявляет никаких итераторы и удаление элемента делает недействительным только эти итераторы, указывающие на удаленном элементе.
Если параметр hashed значения не распределяются равномерно, однако, хэш-таблицы может выродиться.В стороны -- для хэш-функции, всегда возвращает одно и то же значение -- поиск, вставка и удаление пропорциональны число элементов в последовательности (линейном времени).Контейнер стремится выбрать разумное хэш-функции, средний размер контейнера и размер hashtable - (общее количество сегментов), но можно переопределить любой из следующих вариантов.См., например, функции hash_set::max_load_factor (STL/CLR) и hash_set::rehash (STL/CLR).
Hash_multimap поддерживает двунаправленные итераторы, что означает, что можно пройти по смежным элементам данного итератора, который задает элемент управляемой последовательности.Нерегламентированный головной узел соответствует итератору, возвращенному hash_multimap::end (STL/CLR)().Можно уменьшить итератор для достижения последнего элемента в управляемой последовательности, если он имеется.Можно увеличивать итератор hash_multimap для достижения головного узла, а затем сравнивает равно end().Однако нельзя разыменования итератор, возвращаемый end().
Обратите внимание, что нельзя обращаться к элементу hash_multimap непосредственно заданным свою числовую позицию -- это требует итератора произвольного доступа.
Итератор hash_multimap хранит маркер в связанный обработчик действия hash_multimap узла, который в свою очередь содержит дескриптор к его связанный контейнер.Итераторы можно использовать только с их соответствующими объект-контейнерами.Итератор hash_multimap остается допустимым, пока его связанный узел hash_multimap связан с определенным hash_multimap.Кроме того, допустимый итератор dereferencable -- его можно использовать для доступа или изменения значения элемента он обозначает -- пока она не равен end().
Стирающ или удаление элемента вызывает деструктор для своего, хранящиеся значения.Разрушать контейнер стирает все элементы.Таким образом, контейнер, тип элементов которого класс ref гарантирует, что элементы не переживают контейнер.Однако следует отметить, not удаляет контейнер маркеров делает его элементы.
Требования
заголовок: <cliext/hash_map>
Cliext пространство имен: