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

C++ में Set और UnorderedSet के बीच अंतर


विवरण

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
  1. - C++ में 'struct' और 'typedef struct' में अंतर?

    C++ में, struct और typedef struct के बीच कोई अंतर नहीं है क्योंकि, C++ में, सभी struct/union/enum/class घोषणाएं ऐसा व्यवहार करती हैं जैसे वे इम्प्लिसिटली typedefed हैं, जब तक कि नाम उसी नाम की किसी अन्य घोषणा द्वारा छिपा नहीं जाता। हालांकि एक सूक्ष्म अंतर है कि typedefs को फॉरवर्ड डिक्लेयर नहीं किय

  1. - C++ स्ट्रिंग कॉन्स्टेंट्स और कैरेक्टर कॉन्स्टेंट्स में अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल है। इसका प्रकार char है। उदाहरण के लिए, a ASCII आधारित सिस्टम पर मान 97 के साथ char प्रकार का है। डबल कोट्स में एक कैरेक्टर या कैरेक्टर्स की स्ट्रिंग एक स्ट्रिंग लिटरल दर्शाती है। इसका प्रकार const char[] है और यह स्ट्रिंग की लंबाई + 1 के आकार

  1. - Java में List और Set के बीच अंतर

    List और Set दोनों इंटरफेस कलेक्शन फ्रेमवर्क से संबंधित हैं। दोनों इंटरफेस Collection इंटरफेस को एक्सटेंड करते हैं। वे दोनों ऑब्जेक्ट के कलेक्शन को एक यूनिट के रूप में स्टोर करने के लिए उपयोग किए जाते हैं। JDK 1.2 से पहले, हम ऑब्जेक्ट को एक यूनिट के रूप में ग्रुप करने के लिए Arrays, Vectors, और Hash