अनऑर्डरेड एसोसिएटिव कंटेनर (सी ++)

प्रोग्रामिंग लैंग्वेज C++ में, अनऑर्डरेड एसोसिएटिव कंटेनर सी ++ मानक पुस्तकालय में क्लास टेम्प्लेट का एक समूह है जो हैश तालिका  वेरिएंट को लागू करता है। टेम्प्लेट (प्रोग्रामिंग) होने के नाते, उनका उपयोग मनमाने तत्वों, जैसे पूर्णांक या कस्टम कक्षाओं को संग्रहीत करने के लिए किया जा सकता है। निम्नलिखित कंटेनरों को सी ++ मानक के वर्तमान संशोधन में परिभाषित किया गया है: ,  ,  ,. इनमें से प्रत्येक कंटेनर केवल उनके तत्वों पर रखी गई बाधाओं पर भिन्न होता है।

अनियंत्रित सहयोगी कंटेनर सी ++ मानक पुस्तकालय में सहयोगी कंटेनर के समान होते हैं लेकिन अलग-अलग बाधाएं होती हैं। जैसा कि उनके नाम से पता चलता है, अनियंत्रित साहचर्य कंटेनरों में तत्व अच्छी तरह से ऑर्डर नहीं कर रहे हैं। यह वस्तुओं को स्टोर करने के लिए हैशिंग के उपयोग के कारण है। कंटेनर अभी भी नियमित सहयोगी कंटेनर की तरह पुनरावर्तक हो सकते हैं।

इतिहास
C++ भाषा में हैश टेबल का पहला व्यापक रूप से उपयोग किया जाने वाला कार्यान्वयन था,  ,  ,   सिलिकॉन ग्राफिक्स (SGI) मानक टेम्पलेट लाइब्रेरी (STL) के क्लास टेम्प्लेट। उनकी उपयोगिता के कारण, उन्हें बाद में C++ मानक लाइब्रेरी के कई अन्य कार्यान्वयनों में शामिल किया गया (उदाहरण के लिए, जीएनयू संकलक संग्रह (GCC) libstdc++ और  विजुअल सी ++  (एमएसवीसी) मानक पुस्तकालय)।   e> क्लास टेम्प्लेट सी ++ तकनीकी रिपोर्ट 1 (C++ TR1) में प्रस्तावित किए गए थे और नामों के तहत स्वीकार किए गए थे. बाद में, उन्हें C++ मानक के C++11 संशोधन में शामिल किया गया। बूस्ट सी ++ पुस्तकालयों को बढ़ावा दें में एक कार्यान्वयन भी उपलब्ध है.

कार्यों का अवलोकन
कंटेनरों को कंटेनरों के नाम के शीर्षकों में परिभाषित किया जाता है, उदाहरण के लिए,  शीर्षलेख में परिभाषित किया गया है. सभी कंटेनर कंटेनर अवधारणा (जेनेरिक प्रोग्रामिंग) की आवश्यकताओं को पूरा करते हैं, जिसका अर्थ है कि उनके पास है,  ,  ,  ,  , और   तरीके।

कस्टम हैश फ़ंक्शंस
Std :: unordered_map में कस्टम ऑब्जेक्ट्स का उपयोग करने के लिए, कस्टम हैश फ़ंक्शन को परिभाषित किया जाना चाहिए। यह फ़ंक्शन कस्टम प्रकार का कॉन्स्ट संदर्भ लेता है और size_t देता है उपयोगकर्ता परिभाषित फ़ंक्शन का उपयोग std :: unordered_map में किया जा सकता है, इसे टेम्पलेट पैरामीटर के रूप में पास करके या एसटीडी :: हैश फ़ंक्शन को विशेषज्ञता के द्वारा डिफ़ॉल्ट हैश फ़ंक्शन के रूप में सेट किया जा सकता है