C++ STL क्या है?
C++ STL (स्टैंडर्ड टेम्पलेट लाइब्रेरी) C++ टेम्पलेट क्लासेस का एक शक्तिशाली समूह है जो सामान्य-उद्देश्य वाली क्लासेस और फंक्शन्स प्रदान करता है। यह टेम्पलेट्स का उपयोग करके कई लोकप्रिय और आमतौर पर उपयोग किए जाने वाले एल्गोरिदम और डेटा संरचनाओं जैसे वेक्टर, लिस्ट, क्यू, और स्टैक को लागू करता है।
यह कंटेनर क्लासेस, एल्गोरिदम, और इटरेटर्स की एक लाइब्रेरी है। यह एक सामान्यीकृत लाइब्रेरी है, इसलिए इसके घटक पैरामीटरीकृत हैं। STL के साथ काम करने के लिए टेम्पलेट क्लासेस का कार्य ज्ञान एक पूर्वापेक्षा है।
टेम्पलेट्स C++ प्रोग्रामिंग भाषा की एक विशेषता है जो फंक्शन्स और क्लासेस को जेनेरिक प्रकारों के साथ काम करने की अनुमति देती है। यह एक फंक्शन या क्लास को प्रत्येक के लिए फिर से लिखे बिना कई अलग-अलग डेटा प्रकारों पर काम करने में सक्षम बनाता है।
C++ STL के तीन मुख्य घटक
1. कंटेनर (Containers)
कंटेनर एक निश्चित प्रकार के ऑब्जेक्ट्स के संग्रह को प्रबंधित करने के लिए उपयोग किए जाते हैं। कई अलग-अलग प्रकार के कंटेनर होते हैं जैसे डेक, लिस्ट, वेक्टर, मैप, आदि।
सीक्वेंस कंटेनर्स (Sequence Containers)
ये कंटेनर डेटा संरचनाओं को लागू करते हैं जिन्हें क्रमिक तरीके से एक्सेस किया जा सकता है।
- vector - डायनामिक सरणी
- list - डबल लिंक्ड लिस्ट
- deque - डबल-एंडेड क्यू
- array - फिक्स्ड साइज सरणी
- forward_list - सिंगल लिंक्ड लिस्ट
कंटेनर एडाप्टर्स (Container Adaptors)
ये सीक्वेंशियल कंटेनर्स के लिए एक अलग इंटरफेस प्रदान करते हैं।
- queue - FIFO (फर्स्ट इन फर्स्ट आउट)
- priority_queue - प्राथमिकता आधारित क्यू
- stack - LIFO (लास्ट इन फर्स्ट आउट)
एसोसिएटिव कंटेनर्स (Associative Containers)
ये सॉर्टेड डेटा संरचनाओं को लागू करते हैं जिन्हें जल्दी से खोजा जा सकता है (O(log n) जटिलता)।
- set - यूनिक तत्वों का सेट
- multiset - डुप्लिकेट तत्वों की अनुमति वाला सेट
- map - की-वैल्यू पेयर (यूनिक की)
- multimap - डुप्लिकेट की की अनुमति वाला मैप
अनऑर्डर्ड एसोसिएटिव कंटेनर्स (Unordered Associative Containers)
ये अनऑर्डर्ड डेटा संरचनाओं को लागू करते हैं जिन्हें जल्दी से खोजा जा सकता है (औसत O(1))।
- unordered_set
- unordered_multiset
- unordered_map
- unordered_multimap
2. एल्गोरिदम (Algorithms)
एल्गोरिदम कंटेनर्स पर कार्य करते हैं। वे उन साधनों को प्रदान करते हैं जिनके द्वारा आप कंटेनर्स की सामग्री को इनिशियलाइज़, सॉर्ट, सर्च, और ट्रांसफॉर्म करेंगे।
- सॉर्टिंग - sort, stable_sort, partial_sort
- सर्चिंग - binary_search, find, lower_bound, upper_bound
- महत्वपूर्ण STL एल्गोरिदम - transform, for_each, copy, remove
- उपयोगी सरणी एल्गोरिदम - fill, generate, iota
- पार्टीशन ऑपरेशन्स - partition, stable_partition
3. इटरेटर्स (Iterators)
इटरेटर्स ऑब्जेक्ट्स के संग्रह के तत्वों के माध्यम से चरणबद्ध तरीके से जाने के लिए उपयोग किए जाते हैं। ये संग्रह कंटेनर या कंटेनर्स के सबसेट हो सकते हैं।
इटरेटर श्रेणियाँ
- इनपुट इटरेटर
- आउटपुट इटरेटर
- फॉरवर्ड इटरेटर
- बाइडायरेक्शनल इटरेटर
- रैंडम एक्सेस इटरेटर
STL का उपयोग करने के लाभ
- पुन: प्रयोज्य, परीक्षित, और कुशल कोड
- टाइप सेफ्टी
- सामान्य प्रोग्रामिंग सक्षम करता है
- विकास समय कम करता है