यहां हम देखेंगे कि C++ में set, multiset, unordered_set और unordered_multiset में क्या अंतर हैं। आइए कुछ उदाहरणों का उपयोग करके उनके गुणों को देखें।
सेट
सेट के गुण नीचे की तरह हैं
- डेटा को क्रमबद्ध क्रम में संग्रहीत करता है
- केवल अनन्य मान संग्रहीत करता है
- हम डेटा डाल या हटा सकते हैं, लेकिन डेटा नहीं बदल सकते
- प्रारंभ और समाप्ति पुनरावर्तक का उपयोग करके हम एक से अधिक तत्वों को हटा सकते हैं
- हम इटरेटर्स का उपयोग करके ट्रैवर्स कर सकते हैं
- बाइनरी सर्च ट्री का उपयोग करके सेट कार्यान्वित किए जाते हैं
आइए अब एक उदाहरण देखें
उदाहरण
#include <iostream> #include <set> using namespace std; main() { int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41}; set<int> my_set; for(int i = 0; i<15; i++) { my_set.insert(data[i]); } set<int>::iterator it; for(it = my_set.begin(); it != my_set.end(); it++) { cout << "Item: " << *it << endl; } }
आउटपुट
Item: 11 Item: 22 Item: 23 Item: 33 Item: 41 Item: 44 Item: 55 Item: 66 Item: 77 Item: 88 Item: 99
मल्टीसेट
सेट के गुण नीचे की तरह हैं -
- डेटा को क्रमबद्ध क्रम में संग्रहीत करता है
- यह डुप्लीकेट डेटा स्टोर करने की अनुमति देता है
- स्टार्ट और एंड इटरेटर का उपयोग करके हम एक से अधिक तत्वों को हटा सकते हैं।
अब एक उदाहरण देखते हैं।
उदाहरण
#include <iostream> #include <set> using namespace std; main() { int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41}; multiset<int> my_set; for(int i = 0; i<15; i++) { my_set.insert(data[i]); } multiset<int>::iterator it; for(it = my_set.begin(); it != my_set.end(); it++) { cout << "Item: " << *it << endl; } }
आउटपुट
Item: 11 Item: 11 Item: 22 Item: 22 Item: 23 Item: 33 Item: 41 Item: 44 Item: 55 Item: 66 Item: 66 Item: 66 Item: 77 Item: 88 Item: 99
अनियंत्रित सेट
सेट के गुण नीचे की तरह हैं -
- डेटा किसी भी क्रम में रखा जा सकता है
- डुप्लिकेट डेटा छोड़ दिया जाएगा
- यह सेट हैश-टेबल का उपयोग करके बनाया गया है
- हम केवल एक तत्व को मिटा सकते हैं, जहां इटरेटर इंगित कर रहा है
अब एक उदाहरण देखते हैं।
उदाहरण
#include <iostream> #include <unordered_set> using namespace std; main() { int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41}; unordered_set<int> my_set; for(int i = 0; i<15; i++) { my_set.insert(data[i]); } unordered_set<int>::iterator it; for(it = my_set.begin(); it != my_set.end(); it++) { cout << "Item: " << *it << endl; } }
आउटपुट
Item: 11 Item: 55 Item: 22 Item: 66 Item: 33 Item: 44 Item: 77 Item: 88 Item: 99 Item: 23 Item: 41
अनियंत्रित मल्टीसेट
सेट के गुण नीचे की तरह हैं -
- डेटा किसी भी क्रम में रखा जा सकता है
- डुप्लिकेट डेटा की अनुमति है
- यह सेट हैश-टेबल का उपयोग करके बनाया गया है
- हम केवल एक तत्व को मिटा सकते हैं, जहां इटरेटर इंगित कर रहा है
अब एक उदाहरण देखते हैं।
उदाहरण
#include <iostream> #include <unordered_set> using namespace std; main() { int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41}; unordered_multiset<int> my_set; for(int i = 0; i<15; i++) { my_set.insert(data[i]); } unordered_multiset<int>::iterator it; for(it = my_set.begin(); it != my_set.end(); it++) { cout << "Item: " << *it << endl; } }
आउटपुट
Item: 11 Item: 55 Item: 22 Item: 66 Item: 33 Item: 22 Item: 11 Item: 44 Item: 77 Item: 88 Item: 66 Item: 99 Item: 66 Item: 23 Item: 41