Multimap - Multimap - Wikipedia
v počítačová věda, a multimapa (někdy také multihash nebo multidikt) je zobecněním a mapa nebo asociativní pole abstraktní datový typ ve kterém může být pro daný klíč přidružena a vrácena více než jedna hodnota. Jak mapa, tak multimapa jsou konkrétní případy kontejnery (například viz C ++ Standardní knihovna šablon kontejnery ). Multimapa je často implementována jako mapa s seznamy nebo sady jako hodnoty mapy.
Příklady
- V systému zápisu studentů, kde mohou být studenti zapsáni do více tříd současně, může existovat asociace pro každý zápis studenta do kurzu, kde klíčem je ID studenta a hodnotou je ID kurzu. Pokud je student zapsán do tří kurzů, budou existovat tři asociace obsahující stejný klíč.
- Rejstřík knihy může hlásit libovolný počet referencí pro daný indexový výraz, a proto může být kódován jako multimapa z indexových výrazů na libovolný počet referenčních umístění nebo stránek.
- Dotazovací řetězce může mít více hodnot přidružených k jednomu poli. To se běžně generuje, když a webový formulář umožňuje více zaškrtávací políčka nebo výběry, které mají být vybrány v reakci na jeden prvek formuláře.
Jazyková podpora
C ++
C ++ je Standardní knihovna šablon poskytuje multimapa
kontejner pro seřazenou multimapu pomocí a samovyvažující binární vyhledávací strom,[1] a SGI Rozšíření STL poskytuje hash_multimap
kontejner, který implementuje multimapu pomocí a hash tabulka.[2]
Od C ++ 11 se Standardní knihovna šablon poskytuje unordered_multimap
pro neuspořádanou multimapu.[3]
Šipka
Toulec poskytuje Multimapu pro Šipka.[4]
Jáva
Apache Commons Kolekce poskytuje rozhraní MultiMap pro Jáva.[5] Poskytuje také třídu implementující MultiValueMap, která vytváří MultiMap z Map objektu a typu Collection.[6]
Google Guava poskytuje rozhraní Multimap a jeho implementace.[7]
Krajta
Python poskytuje a sbírky. defaultdict
třída, kterou lze použít k vytvoření multimap. Uživatel může vytvořit instanci třídy jako collections.defaultdict (seznam)
.
OCaml
OCaml standardní modul knihovny Hashtbl
implementuje hashovací tabulku, kde je možné uložit více hodnot klíče.
Scala
The Scala API programovacího jazyka také poskytuje Multimap a implementace.[8]
Viz také
- Abstraktní datový typ pro koncept typu obecně
- Asociativní pole pro základnější abstraktní datový typ
- Multiset pro případ, kdy se stejná položka může objevit několikrát
Reference
- ^ „multimap
“ . Příručka programátora standardní knihovny šablon. Silicon Graphics International. - ^ "hash_multimap
" . Příručka programátora standardní knihovny šablon. Silicon Graphics International. - ^ „Pracovní koncept, standard pro programovací jazyk C ++“ (PDF). p. 7807.
- ^ „Multimap“. Toulec API dokumenty.
- ^ „Rozhraní MultiMap“. Commons Collections 3.2.2 API, Apache Commons.
- ^ „Třída MultiValueMap“. Commons Collections 3.2.2 API, Apache Commons.
- ^ „Rozhraní Multimap
“ . Knihovna Guava 2.0. Archivovány od originál dne 15.01.2013. Citováno 2013-01-01. - ^ „Scala.collection.mutable.MultiMap“. Scala stabilní API.