विवरण
C++ में, Set और MultiSet दोनों डेटा संरचनाओं के प्रकार हैं जिनका उपयोग डेटा को आसान एक्सेस और सम्मिलन के लिए संग्रहीत करने के लिए किया जाता है। दोनों डेटा संरचनाओं की विशेषताओं के आधार पर हम Set और MultiSet के बीच अंतर कर सकते हैं।
महत्वपूर्ण अंतर
| क्रमांक | मुख्य बिंदु | Set | MultiSet |
|---|---|---|---|
| 1 | परिभाषा | C++ में Set को एक प्रकार के सहयोगी कंटेनर के रूप में परिभाषित किया जा सकता है जो डेटा को कुंजी-मान जोड़ी में संग्रहीत करता है और जिसमें प्रत्येक मान तत्व अद्वितीय होना चाहिए, क्योंकि तत्व का मान उसकी पहचान करता है। | दूसरी ओर MultiSet C++ STL (स्टैंडर्ड टेम्पलेट लाइब्रेरी) का हिस्सा हैं और उन्हें Set की तरह सहयोगी कंटेनर के रूप में परिभाषित किया गया है जो सॉर्ट की गई कुंजी-मान जोड़े संग्रहीत करते हैं, लेकिन Set के विपरीत जो केवल अद्वितीय कुंजी संग्रहीत करता है, MultiSet में डुप्लिकेट कुंजी हो सकती हैं। |
| 2 | सॉर्टिंग | Set के मामले में, डेटा सॉर्ट क्रम में संग्रहीत होता है। | MultiSet के मामले में भी डेटा सॉर्ट क्रम में संग्रहीत होता है। |
| 3 | डुप्लिकेट मान | Set में डुप्लिकेट मान संग्रहीत करने की अनुमति नहीं है। | दूसरी ओर MultiSet के मामले में हम डुप्लिकेट मान संग्रहीत कर सकते हैं। |
| 4 | हेरफेर | Set के मामले में, एक बार मान सम्मिलित होने के बाद उसका मान नहीं बदल सकते, हालांकि हम उसे हटा या फिर से सम्मिलित कर सकते हैं। | हालांकि MultiSet के मामले में भी एक बार सम्मिलित होने के बाद मान नहीं बदल सकते। |
उदाहरण: Set
#include <iostream>
#include <set>
using namespace std;
int 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;
}
return 0;
}
आउटपुट
Item: 11 Item: 22 Item: 23 Item: 33 Item: 41 Item: 44 Item: 55 Item: 66 Item: 77 Item: 88 Item: 99
उदाहरण: MultiSet
#include <iostream>
#include <set>
using namespace std;
int 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;
}
return 0;
}
आउटपुट
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