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

सी ++ एसटीएल (3) में बनाम unordered_set सेट करें


इस लेख में, आइए समझते हैं कि C++ STL में क्या सेट और unordered_set है और इस तरह उनके बीच अंतर का ज्ञान प्राप्त करें।

क्या सेट है?

एक सेट एक सहयोगी कंटेनर है जिसमें कुंजी प्रकार की अनूठी वस्तुओं का एक क्रमबद्ध सेट होता है। प्रत्येक तत्व केवल एक बार हो सकता है, इसलिए डुप्लिकेट की अनुमति नहीं है। उपयोगकर्ता किसी भी क्रम में तत्वों को सम्मिलित करके एक सेट बना सकता है और सेट उपयोगकर्ता को एक सॉर्ट किया गया डेटा लौटाएगा जिसका अर्थ है कि सेट में डेटा को सॉर्ट करने के लिए परिभाषा है जो उपयोगकर्ता से सारगर्भित है।

सेट का उपयोग करने के मुख्य कारण हैं -

  • जब डेटा सॉर्ट किया गया आवश्यक है

  • जब डुप्लिकेट मानों की आवश्यकता नहीं होती है तो केवल अद्वितीय डेटा की आवश्यकता होती है

  • जब हम बाइनरी सर्च ट्री का उपयोग करना चाहते हैं हैश टेबल के बजाय।

  • जब खोज समय में कोई समस्या नहीं होती है क्योंकि इसमें लॉग(n) जटिलता takes लगती है खोज में

इनपुट -

set = {2, 1, 5, 6, 9, 3, 2}

आउटपुट -

1, 2, 3, 5, 6, 9

नोट - मान यादृच्छिक क्रम में डाले जाते हैं, लेकिन उन्हें सेट द्वारा क्रमबद्ध किया जाता है और सेट से डुप्लिकेट मान भी हटा दिए जाते हैं।

उदाहरण

#include <iostream>
#include <set>
using namespace std;
int main(){
   //creating an array
   int arr[] = {2, 1, 5, 6, 9, 3, 2};
   int size = sizeof(arr)/ sizeof(arr[0]);
   //declaring a set
   set<int> SET;
   //inserting elements from an array to set using insert()
   for(int i = 0; i<size; i++){
      SET.insert(arr[i]);
   }
   set<int>::iterator it;
   cout<<"Values in set are: ";
   for(it = SET.begin(); it != SET.end(); it++){
      cout <<*it<<" ";
   }
}

आउटपुट

उपरोक्त कोड के लिए आउटपुट होगा -

Values in set are: 1 2 3 5 6 9

unordered_set क्या है?

एक unordered_set एक सहयोगी कंटेनर है जिसमें बेतरतीब ढंग से डाला गया डेटा का एक अनियंत्रित सेट होता है। प्रत्येक तत्व केवल एक बार हो सकता है, इसलिए डुप्लिकेट की अनुमति नहीं है। एक उपयोगकर्ता किसी भी क्रम में तत्वों को सम्मिलित करके एक अनियंत्रित सेट बना सकता है और एक अनियंत्रित सेट किसी भी क्रम में डेटा लौटाएगा यानी अनियंत्रित रूप।

अनियंत्रित सेट का उपयोग करने के मुख्य कारण हैं -

  • जब किसी सॉर्ट किए गए डेटा की आवश्यकता नहीं होती है तो इसका मतलब है कि डेटा एक अनियंत्रित प्रारूप में उपलब्ध है

  • जब डुप्लिकेट मानों की आवश्यकता नहीं होती है तो केवल अद्वितीय डेटा की आवश्यकता होती है

  • जब हम बाइनरी सर्च ट्री के बजाय हैश टेबल का उपयोग करना चाहते हैं।

  • जब एक तेज़ खोज की आवश्यकता होती है क्योंकि यह औसत मामले में O(1) और सबसे खराब स्थिति में O(n) लेता है

इनपुट -

set = {2, 1, 5, 6, 9, 3, 2}

आउटपुट -

3, 9, 6, 5, 2

उदाहरण

#include <iostream>
#include <unordered_set>
using namespace std;
int main (){
   int arr[] = { 2, 1, 5, 6, 9, 3, 2 };
   int size = sizeof (arr) / sizeof (arr[0]);
   unordered_set < int >U_SET;
   //inserting elements from an array to an unordered_set using insert()
   for (int i = 0; i < size; i++){
      U_SET.insert (arr[i]);
   }
   unordered_set < int >::iterator it;
   cout << "Values in unordred set are: ";
   for (it = U_SET.begin (); it != U_SET.end (); it++){
      cout << *it << " ";
   }
}

आउटपुट

उपरोक्त कोड के लिए आउटपुट होगा -

Values in unordered set are: 3 6 5 9 2 1

  1. STL में Set_Union को लागू करने के लिए C++ प्रोग्राम

    दो समुच्चयों का मिलन उन तत्वों द्वारा निर्मित होता है जो किसी एक समुच्चय में या दोनों में मौजूद होते हैं। दूसरे सेट के तत्व जिनमें पहले सेट में समान तत्व होते हैं, उन्हें परिणामी सेट में कॉपी नहीं किया जाता है। सामान्य सेट ऑपरेशन हैं - संघ सेट करें चौराहे सेट करें सममित सेट अंतर या अनन्य-या अंतर य

  1. सी++ कार्यक्रम एसटीएल में Set_Intersection लागू करने के लिए

    दो समुच्चयों का प्रतिच्छेदन केवल उन तत्वों से बनता है जो दोनों समुच्चयों में उभयनिष्ठ हैं। फ़ंक्शन द्वारा कॉपी किए गए तत्व हमेशा पहले सेट से उसी क्रम में आते हैं। दोनों सेटों के तत्वों को पहले ही ऑर्डर कर दिया जाएगा। सामान्य सेट ऑपरेशन हैं - संघ सेट करें चौराहे सेट करें सममित सेट अंतर या अनन्य-या

  1. सी++ प्रोग्राम एसटीएल में Set_Difference को लागू करने के लिए

    दो समुच्चयों का अंतर केवल पहले सेट में मौजूद तत्वों से बनता है, दूसरे सेट में नहीं। फ़ंक्शन द्वारा कॉपी किए गए तत्व हमेशा पहले सेट से उसी क्रम में आते हैं। दोनों सेटों के तत्वों को पहले ही ऑर्डर कर दिया जाएगा। सामान्य सेट ऑपरेशन हैं - संघ सेट करें चौराहे सेट करें सममित सेट अंतर या अनन्य-या अंतर या