मल्टीमैप

From Vigyanwiki

कंप्यूटर विज्ञान में, मल्टीमैप (कभी-कभी मल्टीहैश, मल्टीडिक्ट या मल्टीडिक्शनरी भी) सहयोगी सरणी अमूर्त डेटा प्रकार का सामान्यीकरण है। जिसमें एक से अधिक मान किसी दिए गए कुंजी के साथ जुड़े और लौटाए जा सकते हैं। मानचित्र और मल्टीमैप दोनों कंटेनर (डेटा संरचना) के विशेष स्थितियां हैं (उदाहरण के लिए, C++ मानक टेम्पलेट लाइब्रेरी मानक टेम्पलेट लाइब्रेरी कंटेनर देखें) अधिकांशतः मल्टीमैप को मानचित्र मानों के रूप में सूची (कंप्यूटिंग) या सेट (कंप्यूटर विज्ञान) के साथ मानचित्र के रूप में कार्यान्वित किया जाता है।

उदाहरण

  • छात्र नामांकन प्रणाली में, जहां छात्रों को एक साथ कई कक्षाओं में नामांकित किया जा सकता है, पाठ्यक्रम में प्रत्येक छात्र के नामांकन के लिए एसोसिएशन हो सकती है, जहां कुंजी छात्र आईडी है और मूल्य पाठ्यक्रम आईडी है। यदि छात्र तीन पाठ्यक्रमों में नामांकित है, तो एक ही कुंजी वाली तीन एसोसिएशन होंगी।
  • किसी पुस्तक का सूचकांक किसी दिए गए सूचकांक शब्द के लिए किसी भी संख्या में संदर्भों की रिपोर्ट कर सकता है, और इस प्रकार सूचकांक शब्दों से किसी भी संख्या में संदर्भ स्थानों या पृष्ठों के लिए मल्टीमैप के रूप में कोडित किया जा सकता है।
  • क्वेरी स्ट्रिंग में एक ही फ़ील्ड से जुड़े कई मान हो सकते हैं। यह सामान्यतः तब उत्पन्न होता है जब वेब फार्म एक ही फॉर्म तत्व के उत्तर में एकाधिक चेक बॉक्स या चयन चुनने की अनुमति देता है।

भाषा समर्थन

C++

C++ की मानक टेम्पलेट लाइब्रेरी प्रदान करती है multimap स्व-संतुलन द्विआधारी खोज ट्री का उपयोग करके क्रमबद्ध मल्टीमैप के लिए मानक टेम्पलेट लाइब्रेरी कंटेनर[1] और सिलिकॉन ग्राफिक्स इंटरनेशनल का एसटीएल एक्सटेंशन प्रदान करता है hash_multimap कंटेनर, जो हैश तालिका का उपयोग करके मल्टीमैप प्रयुक्त करता है।[2]

C++11 के अनुसार, मानक टेम्पलेट लाइब्रेरी प्रदान करता है unordered_multimap अव्यवस्थित मल्टीमैप के लिए।[3]


डार्ट

क्विवर डार्ट (प्रोग्रामिंग भाषा) के लिए मल्टीमैप प्रदान करता है।[4]


जावा

अपाचे कॉमन्स कलेक्शंस जावा (प्रोग्रामिंग भाषा) के लिए मल्टीमैप इंटरफ़ेस प्रदान करता है।[5] यह मल्टीवैल्यूमैप कार्यान्वयन वर्ग भी प्रदान करता है जो मैप ऑब्जेक्ट और एक प्रकार के संग्रह से मल्टीमैप बनाता है।[6]

गूगल गुवावा मल्टीमैप इंटरफ़ेस और उसका कार्यान्वयन प्रदान करता है।[7]


पायथन

पायथन collections.defaultdict प्रदान करता है क्लास जिसका उपयोग मल्टीमैप बनाने के लिए किया जा सकता है। उपयोगकर्ता कक्षा को इस प्रकार त्वरित कर सकता है। collections.defaultdict(list).

OCaml

OCaml का मानक पुस्तकालय मॉड्यूल Hashtbl हैश तालिका प्रयुक्त करता है जहां कुंजी के लिए एकाधिक मान संग्रहीत करना संभव है।

स्कैला

स्काला (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा का एपीआई मल्टीमैप और कार्यान्वयन भी प्रदान करता है।[8]


यह भी देखें

  • सामान्य रूप से प्रकार की अवधारणा के लिए सार डेटा प्रकार
  • अधिक मौलिक अमूर्त डेटा प्रकार के लिए सहयोगी सरणी
  • ऐसे स्थितियां के लिए मल्टीसेट जहां एक ही आइटम कई बार दिखाई दे सकता है

संदर्भ

  1. "multimap<Key, Data, Compare, Alloc>". Standard Template Library Programmer's Guide. Silicon Graphics International.
  2. "hash_multimap<Key, HashFcn, EqualKey, Alloc>". Standard Template Library Programmer's Guide. Silicon Graphics International.
  3. "वर्किंग ड्राफ्ट, प्रोग्रामिंग लैंग्वेज C++ के लिए मानक" (PDF). p. 7807.
  4. "मल्टीमैप". Quiver API docs.
  5. "इंटरफ़ेस मल्टीमैप". Commons Collections 3.2.2 API, Apache Commons.
  6. "क्लास मल्टीवैल्यूमैप". Commons Collections 3.2.2 API, Apache Commons.
  7. "Interface Multimap<K,V>". Guava Library 2.0. Archived from the original on 2013-01-15. Retrieved 2013-01-01.
  8. "स्कैला.कलेक्शन.म्यूटेबल.मल्टीमैप". Scala stable API.