Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

STL और C++ स्टैंडर्ड लाइब्रेरी में क्या अंतर है?


मानक टेम्पलेट लाइब्रेरी (STL) C++ प्रोग्रामिंग भाषा के लिए एक सॉफ्टवेयर लाइब्रेरी है जिसने C++ मानक लाइब्रेरी के कई हिस्सों को प्रभावित किया है। यह एल्गोरिदम, कंटेनर, फ़ंक्शन और इटरेटर नामक चार घटक प्रदान करता है। ध्यान दें कि "STL" या "स्टैंडर्ड टेम्प्लेट लाइब्रेरी" शब्द ISO 14882 C++ मानक में कहीं भी दिखाई नहीं देता है। इसलिए C++ मानक पुस्तकालय को STL के रूप में संदर्भित करना गलत है, अर्थात, STL और C++ मानक पुस्तकालय 2 अलग-अलग चीजें हैं, जिनमें से पहला बाद वाले का सबसेट है।

STL में शामिल हैं

कंटेनर

एसटीएल में अनुक्रम कंटेनर और सहयोगी कंटेनर होते हैं। कंटेनर ऐसी वस्तुएं हैं जो डेटा स्टोर करती हैं। मानक अनुक्रम कंटेनरों में वेक्टर, डेक और सूची शामिल हैं। मानक सहयोगी कंटेनर सेट, मल्टीसेट, मैप, मल्टीमैप, हैश_सेट, हैश_मैप, हैश_मल्टीसेट और हैश_मल्टीमैप हैं। कंटेनर एडेप्टर कतार, प्राथमिकता_क्यू और स्टैक भी हैं, जो एक विशिष्ट इंटरफ़ेस वाले कंटेनर हैं, जो कार्यान्वयन के रूप में अन्य कंटेनरों का उपयोग करते हैं।

पुनरावर्तक

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

एल्गोरिदम

एसटीएल में एल्गोरिदम विशेष रूप से तत्वों की श्रेणियों पर उपयोग करने के लिए डिज़ाइन किए गए कार्यों का एक संग्रह है। एक श्रेणी वस्तुओं का कोई भी क्रम है जिसे इटरेटर या पॉइंटर्स के माध्यम से एक्सेस किया जा सकता है, जैसे कि एक सरणी या कुछ एसटीएल कंटेनरों का एक उदाहरण। एसटीएल में एल्गोरिदम के उदाहरण:सॉर्ट (श्रेणी में तत्वों को क्रमबद्ध करें), बाइनरी_सर्च (यदि कोई मान क्रमबद्ध अनुक्रम में मौजूद है तो परीक्षण करें), min_element (श्रेणी में सबसे छोटा तत्व लौटाएं), आदि। ध्यान दें कि इन सभी एल्गोरिदम को स्वीकार किए गए किसी भी डेटा प्रकार पर लागू किया जा सकता है एक टेम्पलेट के रूप में।

C++ प्रोग्रामिंग भाषा में, C++ मानक पुस्तकालय कक्षाओं और कार्यों का एक संग्रह है, जो मूल भाषा में और स्वयं C++ ISO मानक के हिस्से में लिखे गए हैं। सी ++ मानक पुस्तकालय कई सामान्य कंटेनर प्रदान करता है, इन कंटेनरों का उपयोग और हेरफेर करने के लिए कार्य करता है, फ़ंक्शन ऑब्जेक्ट्स, जेनेरिक स्ट्रिंग्स और स्ट्रीम (इंटरैक्टिव और फ़ाइल I/O सहित), कुछ भाषा सुविधाओं के लिए समर्थन, और स्क्वायर खोजने जैसे रोजमर्रा के कार्यों के लिए कार्य करता है। एक संख्या की जड़। C++ मानक पुस्तकालय की कुछ विशेषताएं निम्नलिखित हैं -

स्ट्रीम

इन पुस्तकालयों का उपयोग C++ में उपलब्ध विभिन्न प्रकार की धाराओं से निपटने के लिए किया जाता है। उदाहरण के लिए, एक स्ट्रीम आम तौर पर फ़ाइल स्ट्रीम का प्रतिनिधित्व करती है, और इस वर्ग का उपयोग फ़ाइलें बनाने, फ़ाइलों को जानकारी लिखने और फ़ाइलों से जानकारी पढ़ने के लिए किया जा सकता है, एक स्ट्रीम एक स्ट्रिंग स्ट्रीम का प्रतिनिधित्व करती है और आमतौर पर स्ट्रिंग्स में हेरफेर करने के लिए उपयोग की जाती है, आदि। पी>

कंटेनर

यह उन वर्गों का एक संग्रह है जो डेटा को विभिन्न प्रकार के डेटा जैसे वैक्टर, सेट, मैप, स्टैक, क्यू आदि में संग्रहीत करने के लिए उपयोग किया जाता है। ये STL के एक घटक हैं।

सामान्य पुस्तकालय

लाइब्रेरी जैसे एल्गोरिथम, समय के लिए क्रोनो, इटरेटर, मेमोरी, आदि।

संख्यात्मक पुस्तकालय

यह लाइब्रेरी उन घटकों का एक संग्रह है जिनका उपयोग C++ प्रोग्राम सेमीन्यूमेरिकल ऑपरेशन करने के लिए कर सकते हैं। उदाहरण के लिए, एक वर्ग टेम्पलेट को परिभाषित करता है, और जटिल संख्याओं का प्रतिनिधित्व और हेरफेर करने के लिए कई कार्य करता है, का उपयोग (छद्म-) यादृच्छिक संख्या, आदि उत्पन्न करने के लिए किया जाता है।

थ्रेडिंग

यह C++11 में पेश किया गया एक पुस्तकालय है जो मूल रूप से संगामिति से संबंधित है।

सी मानक पुस्तकालय

सी मानक पुस्तकालय से प्रत्येक शीर्षलेख सी ++ मानक पुस्तकालय में एक अलग नाम के तहत शामिल है, जो .h को हटाकर और शुरुआत में 'सी' जोड़कर उत्पन्न होता है; उदाहरण के लिए, 'time.h' 'ctime' बन जाता है।


  1. C++ में डॉट (.) ऑपरेटर और -> में क्या अंतर है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में किसी वर्ग के सदस्यों तक पहुंचने के लिए किया जाता है। वे बस विभिन्न परिदृश्यों में उपयोग किए जाते हैं। सी ++ में, वर्ग, संरचना, या संघ के रूप में घोषित प्रकारों को वर्ग प्रकार माना जाता है। तो निम्नलिखित उन तीनों को संदर्भित करता है। a.b का उपयोग केवल तभी किय

  1. C++ में #define और const कीवर्ड में क्या अंतर है?

    #define निर्देश एक प्रीप्रोसेसर निर्देश है; प्रीप्रोसेसर उन मैक्रोज़ को उनके शरीर से बदल देता है इससे पहले कि कंपाइलर इसे देखे। इसे एक स्वचालित खोज के रूप में सोचें और अपने स्रोत कोड की जगह लें। एक const चर घोषणा भाषा में एक वास्तविक चर घोषित करती है, जिसे आप एक वास्तविक चर की तरह उपयोग कर सकते हैं:

  1. सी ++ मानक टेम्पलेट लाइब्रेरी (एसटीएल)

    मानक टेम्पलेट लाइब्रेरी C++ प्रोग्रामिंग भाषा के लिए एक सॉफ्टवेयर लाइब्रेरी है जिसने C++ मानक लाइब्रेरी के कई हिस्सों को प्रभावित किया है। यह एल्गोरिदम, कंटेनर, फ़ंक्शन और इटरेटर नामक चार घटक प्रदान करता है। ध्यान दें कि STL या स्टैंडर्ड टेम्प्लेट लाइब्रेरी शब्द ISO 14882 C++ मानक में कहीं भी दिखाई