set stl
जल्दी से सरल उदाहरणों के साथ एसटीएल में जानें।
हम इस ट्यूटोरियल में एसटीएल कंटेनर - सेट्स पर गहराई से विचार करेंगे। सेट एक विशिष्ट क्रम में अद्वितीय तत्वों के साथ सहयोगी कंटेनर हैं।
सेट में एक तत्व का मूल्य भी कुंजी है जो इसे एक्सेस करने के लिए उपयोग किया जाता है। सेट में सभी तत्वों को अद्वितीय होना चाहिए। एक बार डालने के बाद हम सेट में तत्वों को संशोधित नहीं कर सकते। हालांकि, हम तत्वों को सम्मिलित या हटा सकते हैं।
=> पूर्ण सी ++ मुफ़्त प्रशिक्षण श्रृंखला के लिए यहां देखें।
आप क्या सीखेंगे:
एसटीएल में सेट करें
सेट को लागू करने के लिए, हमें अपने प्रोग्राम में हेडर को शामिल करना होगा।
Android के लिए अच्छा मुफ्त एमपी 3 डाउनलोडर
#include
हम एक सेट की घोषणा इस प्रकार कर सकते हैं:
set myset;
उदाहरण के लिए,यदि हम एक सेट चाहते हैं, पूर्णांक प्रकार के साथ एक तत्व की शुरुआत, तो हम सेट को इस रूप में घोषित कर सकते हैं:
set myset;
सेट पर संचालन
सेट कंटेनर भी मानचित्र जैसे समान संचालन का समर्थन करता है जिसकी चर्चा हम पहले ही कर चुके हैं। सेट द्वारा समर्थित कुछ बुनियादी संचालन निम्नलिखित हैं।
- शुरू : सेट के पहले तत्व को पुनरावृत्ति देता है।
- समाप्त : सेट के अंतिम तत्व का अनुसरण करने वाले तत्व को पुनरावृत्ति देता है।
- डालने : सेट में एक नया तत्व सम्मिलित करता है।
सेट के लिए इंसर्ट ऑपरेशन के तीन वेरिएंट हैं:
-
-
- सम्मिलित करें (तत्व): यह सीधे सेट में तत्व को सम्मिलित करता है और सेट को फिर से सेट करता है।
- सम्मिलित करें (स्थिति, संकेत): यहां, हम तत्व डालने की स्थिति निर्दिष्ट करते हैं।
- सम्मिलित करें (iterator.begin (), iterator.end ()): इस भिन्नता में, हम एक सरणी या दूसरे सेट की तरह सीधे सीमा में सेट कर सकते हैं।
-
- मिटा : सेट से एक तत्व निकालता है।
- आकार : सेट का आकार लौटाता है।
- अधिकतम आकार : वह अधिकतम आकार लौटाता है जो सेट पकड़ सकता है।
- खाली : सेट खाली है या नहीं।
- स्पष्ट : सेट से सभी तत्वों को निकालता है।
- खोज : सेट में एक तत्व ढूँढता है। यदि कोई तत्व पाया जाता है, तो वह सेट में उस तत्व को पुनरावृत्ति देता है। यदि नहीं मिला है, तो यह सेट के अंत में एक पुनरावृत्ति देता है।
नीचे दिए गए एक कार्यक्रम है जो SET के कुछ महत्वपूर्ण कार्यों के उपयोग को दर्शाता है।
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< आउटपुट:
मायसेट का आकार: 4
सेट माईसेट है: 120 130 140 160
100 डालने के बाद, सेट myset है: 100 120 130 140 140 160
अरेस्ट अरेस्ट डालने के बाद, सेट माईसेट है: 100 110 120 130 130 140 150 160
130 से कम तत्वों को हटाने के बाद, शुरुआत: 130 140 150 150
जैसा कि ऊपर दिए गए आउटपुट में दिखाया गया है, हम एक साधारण इन्सर्ट फंक्शन का उपयोग करके एक सेट बनाते हैं।
इसके बाद, हम इट्रेटर संदर्भ और तत्व मान 100 पास करके सम्मिलित फ़ंक्शन के दूसरे संस्करण का उपयोग करके सेट में तत्व 100 डालते हैं। हम देखते हैं कि एक बार डालने के बाद, सेट को फिर से व्यवस्थित किया जाता है और तत्वों का क्रम बनाए रखा जाता है।
इसके बाद हम इन्सर्ट फंक्शन का उपयोग करके एक सरणी {110,150,150} डालें। यदि आप एक सरणी डालने के बाद प्रदर्शित सेट आउटपुट देखते हैं, तो हम देखते हैं कि सेट में 150 का केवल एक मूल्य दर्ज किया गया है। ऐसा इसलिए है क्योंकि सेट में सभी तत्व अद्वितीय हैं।
हम सेट का आकार भी प्रदर्शित करते हैं। अगला, खोज फ़ंक्शन का उपयोग करके हम उन तत्वों को ढूंढते हैं जो 130 से कम हैं और फिर इन तत्वों को हटाने के लिए मिटा फ़ंक्शन को कॉल करें। फिर हम परिणामी सेट प्रदर्शित करते हैं।
यह सब सेट कंटेनर के बारे में है। अगला, हम मल्टीसेट पर चर्चा करेंगे जो सेट कंटेनर का एक विस्तार है।
मल्टीसेट
एक मल्टीसेट एक सहयोगी कंटेनर है जो एक अंतर को छोड़कर सभी पहलुओं में सेट होता है यानी कई तत्वों का एक ही मूल्य हो सकता है।
मल्टीसेट के लिए घोषणा निम्नानुसार है:
multiset mset;
पूर्णांक तत्वों की एक बहु के रूप में घोषित किया जा सकता है:
मल्टीसैट mset;
मल्टीसेट द्वारा समर्थित विभिन्न ऑपरेशन सेट द्वारा समर्थित लोगों के समान हैं।
अब हम सीधे एक मल्टीसेट उदाहरण पर चर्चा करेंगे जो उस ऑपरेशन का उपयोग करता है जो इसका उपयोग करता है।
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< आउटपुट:
मायसेट का आकार: 4
चार तत्वों को सम्मिलित करने के बाद, मल्टीसेट myset है: 10 11 13
१३
15 डालने के बाद, मल्टीसेट माईसेट है: 10 11 13 13 15
15 से कम तत्वों को हटाने के बाद, myset: 15
ओरेकल एसक्यूएल साक्षात्कार प्रश्न और अनुभवी के लिए जवाब
आउटपुट का स्क्रीनशॉट नीचे दिया गया है:
जैसा कि उपरोक्त आउटपुट में दिखाया गया है, शुरू में हम मल्टीसेट में चार तत्व दर्ज करते हैं जिसमें से दो समान हैं। लेकिन एक सेट के विपरीत, इन तत्वों को मल्टीसेट में सफलतापूर्वक डाला जाता है। फिर हम एक पुनरावृत्ति के माध्यम से स्थिति प्रदान करके एक और तत्व 15 सम्मिलित करते हैं, जिसे सफलतापूर्वक डाला जाता है।
इसके बाद, हम मल्टीसेट में 15 से कम तत्वों को ढूंढते हैं और इन तत्वों को कॉल मिटाते हैं। अंत में, हम मल्टीसेट प्रदर्शित करते हैं।
अनियंत्रित सेट
अब तक हमने इस ट्यूटोरियल में सेट और मल्टीसेट पर चर्चा की है।
जबकि सेट अद्वितीय कुंजियों का एक क्रमबद्ध क्रम है, हमारे पास एक और सहयोगी कंटेनर है, जिसे 'अनियंत्रित सेट' कहा जाता है, जो किज़ या तत्वों का एक सेट है जो किसी भी क्रम में संग्रहीत होते हैं। इसका मतलब यह है कि अनऑर्डर किए गए सेट में मौजूद तत्व 'अनऑर्डर किए गए' हैं।
एक unordered मानचित्र के समान, unordered सेट भी हैश तालिका का उपयोग करके लागू किया जाता है, जहाँ हैश तालिका के सूचकांकों में हैश की जाती है। हैश टेबल के उपयोग के कारण, संतुलित वृक्ष संरचना का उपयोग करने वाले सेट के विपरीत तत्वों के क्रम को बनाए रखना संभव नहीं है।
अनियंत्रित सेट को लागू करने के लिए हैडर है।
#include
हम निम्न प्रकार के पूर्णांक का एक अनियंत्रित नक्शा घोषित करते हैं:
Unordered_set uset;
Unordered_set द्वारा समर्थित संचालन unordered_map द्वारा समर्थित उन लोगों के समान हैं जो मानचित्र पर हमारे ट्यूटोरियल में चर्चा करते हैं।
नीचे दिया गया एक उदाहरण है जो unordered_set पर विभिन्न कार्यों को प्रदर्शित करता है।
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< आउटपुट:
Uset का आकार: 5
अनियंत्रित सेट में तत्व हैं: 99 39 6 5 26 4 3 13 2
पाया कुंजी = 13
उमाप बकेट_काउंट: 11
bucket_size: 2
उपरोक्त आउटपुट का स्क्रीनशॉट नीचे दिया गया है।
जैसा कि उपरोक्त आउटपुट में दिखाया गया है, हम पहले 5 तत्वों को अनियंत्रित सेट में सम्मिलित करते हैं और फिर अन्य 4 तत्वों को सम्मिलित करते हैं जो सम्मिलित फ़ंक्शन विविधताओं के उपयोग को प्रदर्शित करते हैं। फिर हम अनियंत्रित सेट की सामग्री प्रदर्शित करते हैं।
अगला, हम खोज फ़ंक्शन का उपयोग यह खोजने के लिए करते हैं कि क्या कुंजी = 13 अनियंत्रित सेट में मौजूद है या नहीं।
इसके बाद, हम दो और फ़ंक्शंस प्रदर्शित करते हैं 'बकेट_काउंट' और 'बकेट_साइज़'। ये कार्य अनियंत्रित नक्शे के आंतरिक कार्यान्वयन से संबंधित हैं।
यह कंटेनर अन्य पुनरावर्तक कार्यों और फ़ंक्शन का भी समर्थन करता है जैसे कि max_size, स्पष्ट, मिटाएँ, खाली, आदि जो अन्य STO कंटेनर के समान है।
निष्कर्ष
इसके साथ, हम एसटीएल में एसईटी पर अपने ट्यूटोरियल के अंत में आ गए हैं।
हमें उम्मीद है कि इस एसटीएल ट्यूटोरियल के एक भाग के रूप में शामिल किए गए विषय आपको एसटीएल और इसके विभिन्न कंटेनरों की समझ हासिल करने में मदद करेंगे।
sql साक्षात्कार प्रश्नों के उत्तर पीडीऍफ़ के साथ
=> लोकप्रिय सी ++ प्रशिक्षण श्रृंखला के माध्यम से यहां पढ़ें।
अनुशंसित पाठ
- एसटीएल में प्राथमिकता कतार
- एसटीएल में सूची
- एसटीएल में एमएपीएस
- एसटीएल में ढेर और कतारें
- STL में Iterators
- एसटीएल में गिरफ्तार
- स्ट्रिंग्स, जोड़ी और ट्यूप एसटीएल में
- एसटीएल में एल्गोरिदम