Мультикарта
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2022 г. ) |
В информатике мультикарта карты (иногда также мультихэш , мультидикт или мультисловарь ) — это обобщение или ассоциативного массива абстрактного типа данных , в котором более одного значения могут быть связаны и возвращены для данного ключа. И карта, и мультикарта являются частными случаями контейнеров (например, см. C++ стандартной библиотеки шаблонов Контейнеры ). Часто мультикарта реализуется как карта со списками или наборами в качестве значений карты.
Примеры
[ редактировать ]- В системе набора студентов, где студенты могут быть зачислены в несколько классов одновременно, может существовать ассоциация для каждого зачисления студента на курс, где ключом является идентификатор студента, а значением — идентификатор курса. Если студент зачислен на три курса, то будет три ассоциации, содержащие один и тот же ключ.
- Указатель книги может сообщать о любом количестве ссылок для данного термина указателя и, таким образом, может быть закодирован как мультикарта от терминов указателя к любому количеству ссылочных мест или страниц.
- Строки запроса могут иметь несколько значений, связанных с одним полем. Обычно это происходит, когда веб-форма позволяет выбирать несколько флажков или вариантов выбора в ответ на один элемент формы.
Языковая поддержка
[ редактировать ]С++
[ редактировать ] C ++ Стандартная библиотека шаблонов предоставляет multimap
контейнер для отсортированного мультикарты с использованием самобалансирующегося двоичного дерева поиска , [1] а обеспечивает расширение STL SGI hash_multimap
контейнер, реализующий мультикарту с использованием хеш-таблицы . [2]
Начиная с C++11, стандартная библиотека шаблонов предоставляет unordered_multimap
для неупорядоченного мультиотображения. [3]
Дарт
[ редактировать ]Quiver предоставляет Multimap для Dart . [4]
Ява
[ редактировать ]Коллекции Apache Commons предоставляют интерфейс MultiMap для Java . [5] Он также предоставляет класс реализации MultiValueMap, который создает MultiMap из объекта Map и типа Collection. [6]
Google Guava предоставляет интерфейс Multimap и его реализации. [7]
Питон
[ редактировать ]Python предоставляет collections.defaultdict
класс, который можно использовать для создания мультикарты. Пользователь может создать экземпляр класса как collections.defaultdict(list)
.
OCaml
[ редактировать ] OCaml Модуль стандартной библиотеки Hashtbl
реализует хеш-таблицу, в которой можно хранить несколько значений ключа.
Скала
[ редактировать ]реализации . API языка программирования Scala также предоставляет Multimap и [8]
См. также
[ редактировать ]- Мультисет для случая, когда один и тот же элемент может появляться несколько раз.
Ссылки
[ редактировать ]- ^ "multimap<Key, Data, Compare, Alloc>" . Руководство программиста стандартной библиотеки шаблонов . Силикон Графикс Интернэшнл .
- ^ «hash_multimap<Key, HashFcn, EqualKey, Alloc>» . Руководство программиста стандартной библиотеки шаблонов . Силикон Графикс Интернэшнл .
- ^ «Рабочий проект стандарта языка программирования C++» (PDF) . п. 7807.
- ^ «Мультикарта» . Документация по API Quiver .
- ^ «Интерфейс МультиКарта» . API коллекций Commons 3.2.2, Apache Commons .
- ^ «Класс MultiValueMap» . API коллекций Commons 3.2.2, Apache Commons .
- ^ «Мультикарта интерфейса<K,V>» . Библиотека Гуавы 2.0 . Архивировано из оригинала 15 января 2013 г. Проверено 1 января 2013 г.
- ^ "Scala.collection.mutable.MultiMap" . Стабильный API Scala .