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