सी ++ में एसटीएल कंटेनर क्या हैं

Si Mem Esati Ela Kantenara Kya Haim



सी ++ में, एसटीएल (मानक टेम्पलेट लाइब्रेरी), कंटेनरों वे वस्तुएँ हैं जिनका उपयोग अन्य वस्तुओं के संग्रह को संग्रहीत करने के लिए किया जाता है। वे क्लास टेम्प्लेट के समान काम करते हैं और बड़ी संख्या में तत्व प्रकारों का समर्थन करते हैं और अपने तत्वों को सीधे या पुनरावृत्तियों के माध्यम से एक्सेस करने के लिए सदस्य कार्य प्रदान करते हैं।

सी++ एसटीएल कंटेनरों के प्रकार

C++ में तीन प्रकार के STL होते हैं कंटेनरों , जो नीचे सूचीबद्ध हैं:







1: अनुक्रमिक कंटेनर

सी ++ में, अनुक्रमिक कंटेनर हमें उन वस्तुओं को स्टोर करने में सक्षम बनाता है जिन्हें अनुक्रमिक रूप से पुनर्प्राप्त किया जा सकता है। इन कंटेनरों डेटा संरचनाओं की सरणियों या लिंक्ड सूचियों के रूप में एन्कोड किया गया है। कुछ प्रकार के अनुक्रमिक कंटेनर नीचे दिए गए हैं।



  • वेक्टर: यह एक गतिशील आकार की सरणी है जो मेमोरी में सन्निहित तरीके से संग्रहीत होती है।
  • किस बारे मेँ: यह एक डबल-एंडेड कतार का प्रतिनिधित्व करता है जो सम्मिलन और विलोपन दोनों के लिए संचालन का समर्थन करता है।
  • ऐरे: यह अपने आकार को स्थिर रखते हुए संकलन के दौरान आवंटित एक स्थिर सरणी है।
  • सूची: यह एक दोगुनी लिंक्ड सूची है जो सूची में किसी भी स्थान पर तत्वों को तेजी से सम्मिलित करने और हटाने का कार्य करती है।
  • आगे की सूची: यह एक सूची की तरह एक एकल-लिंक्ड सूची है लेकिन आप इसे केवल एक दिशा में ही पार कर सकते हैं।

उदाहरण



इस उदाहरण में, हम इसका उपयोग करेंगे वेक्टर वर्ग यह दिखाने के लिए कि कैसे ए अनुक्रमिक CONTAINER संचालित करता है।





#शामिल
#शामिल <वेक्टर>
नेमस्पेस एसटीडी का उपयोग करना;
मुख्य प्रवेश बिंदु ( ) {
// int के एक वेक्टर को इनिशियलाइज़ करें प्रकार
वेक्टर < int यहाँ > nums = { 10 , 2 , 16 , 70 , 5 } ;
// वेक्टर प्रिंट करें
अदालत << 'नंबर हैं:' ;
के लिए ( ऑटो और मैं: अंक )
{
अदालत << मैं << ',' ;
}
वापस करना 0 ;
}

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



2: सहयोगी कंटेनर

सहयोगी कंटेनर तुलना ऑपरेटर द्वारा परिभाषित विशेष क्रम में तत्वों को स्टोर करने की अनुमति दें। भिन्न अनुक्रमिक कंटेनर , तत्वों का क्रम सहयोगी कंटेनर कुंजी का उपयोग करके बनाए रखा जाता है जो उपयोगकर्ताओं को तत्वों को व्यवस्थित और एक्सेस करने की अनुमति देता है। जब एक तत्व को एक में डाला जाता है सहयोगी कंटेनर , यह स्वचालित रूप से इसकी कुंजी के आधार पर सही स्थिति में क्रमबद्ध हो जाता है। इस प्रकार के कंटेनर आंतरिक रूप से बाइनरी ट्री डेटा संरचनाओं की तरह कार्यान्वित किए जाते हैं।

जोड़नेवाला कंटेनरों के रूप में वर्गीकृत किया गया है:

  • नक्शा: की-वैल्यू पेयर का एक संग्रह जिसे अद्वितीय कुंजियों का उपयोग करके सॉर्ट किया गया है
  • मल्टीमैप: की-वैल्यू पेयर का एक संग्रह जिसे कुंजियों का उपयोग करके सॉर्ट किया गया है
  • तय करना: चाबियों द्वारा एकत्र और व्यवस्थित की गई अनूठी कुंजियाँ।
  • मल्टीसेट: चाबियों का एक संग्रह जिसे चाबियों का उपयोग करके क्रमबद्ध किया गया है

उदाहरण

यह बताने के लिए कि कैसे एक जोड़नेवाला CONTAINER काम करता है, हम इसका उपयोग करेंगे वर्ग निर्धारित करें इस उदाहरण में।

#शामिल
#शामिल <सेट>
नेमस्पेस एसटीडी का उपयोग करना;
मुख्य प्रवेश बिंदु ( )
{
// ए को इनिशियलाइज़ करें तय करना int का प्रकार
तय करना < int यहाँ > nums = { 10 , 2 , 16 , 70 , 5 } ;
// प्रिंट करें तय करना
अदालत << 'नंबर हैं:' ;
के लिए ( ऑटो और मैं: अंक )
{
अदालत << मैं << ',' ;
}
वापस करना 0 ;
}

उपरोक्त कोड C ++ में पूर्णांकों के एक सेट को इनिशियलाइज़ करता है, जो एक सहयोगी कंटेनर का एक उदाहरण है। सेट सुनिश्चित करता है कि तत्वों को डिफ़ॉल्ट रूप से आरोही क्रम में क्रमबद्ध किया गया है। कोड तब लूप के लिए सेट में संख्याओं को प्रिंट करता है।

3: अक्रमित साहचर्य कंटेनर

सी ++ में, अक्रमित साहचर्य कंटेनरों के अवर्गीकृत संस्करण प्रदान करने के लिए उपयोग किया जाता है जोड़नेवाला CONTAINER . वे आंतरिक रूप से हैश टेबल डेटा संरचनाओं की तरह कार्यान्वित होते हैं। जोड़नेवाला कंटेनरों के रूप में वर्गीकृत किया गया है:

  • अक्रमित नक्शा: अद्वितीय कुंजियों का उपयोग करके हैश किए गए कुंजी-मूल्य जोड़े का संग्रह।
  • अक्रमित मल्टीमैप: कुंजी-मान युग्म संग्रह जिसे कुंजियों का उपयोग करके हैश किया गया है।
  • अक्रमित सेट: अद्वितीय कुंजियों का एक संग्रह जिसे कुंजियों का उपयोग करके हैश किया गया है।
  • अक्रमित मल्टीसेट: कुंजियों का एक संग्रह जिसे कुंजियों का उपयोग करके हैश किया गया है।

उदाहरण

यह वर्णन करने के लिए कि कैसे एक अक्रमित साहचर्य CONTAINER काम करता है, हम इसका उपयोग करेंगे अक्रमित सेट इस उदाहरण में वर्ग।

#शामिल
#शामिल
नेमस्पेस एसटीडी का उपयोग करना;
मुख्य प्रवेश बिंदु ( )
{
// int के एक unordered_set को इनिशियलाइज़ करें प्रकार
unordered_set < int यहाँ > nums = { 10 , 2 , 16 , 70 , 5 } ;
// प्रिंट करें तय करना
अदालत << 'नंबर हैं:' ;
के लिए ( ऑटो और मैं: अंक )
{
अदालत << मैं << ',' ;
}
वापस करना 0 ;
}

निष्कर्ष

एक एसटीएल सी ++ CONTAINER अन्य वस्तुओं के संग्रह को संग्रहीत करने के लिए धारक वस्तु है। वे क्लास टेम्प्लेट के समान काम करते हैं और बड़ी संख्या में तत्व प्रकारों का समर्थन करते हैं। इस ट्यूटोरियल में, हमने सबसे अधिक उपयोग किए जाने वाले एसटीएल सी++ कंटेनरों पर चर्चा की, जो हैं अनुक्रमिक कंटेनर, सहयोगी कंटेनर साथ ही अनियंत्रित साहचर्य कंटेनर .