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

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


विवरण

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
  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