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

C++ में सेट STL से इन्सर्ट, डिलीट और फाइंड करने का प्रोग्राम


मान लीजिए हमारे पास पूर्णांक प्रकार के डेटा के लिए एक सेट डेटा संरचना है। हमारे मानक इनपुट में हम n क्वेरी प्रदान करते हैं। प्रत्येक क्वेरी (प्रत्येक पंक्ति में) में दो तत्व होते हैं। पहला ऑपरेटर है, दूसरा तत्व है। ऑपरेशन इस प्रकार हैं:

  • Insert: यह तत्व को सेट में डाल देगा
  • Delete: यह तत्व को सेट से हटा देगा (यदि मौजूद है)
  • Search: यह तत्व को सेट में खोजेगा, यदि मौजूद है तो Yes दिखाएगा, अन्यथा No

उदाहरण के लिए, यदि इनपुट n = 7, queries = [[1,5],[1,8],[1,3],[2,8],[1,9],[3,8],[3,3]] है, तो आउटपुट होगा: [No, Yes] क्योंकि 8 सेट में मौजूद नहीं है और 3 मौजूद है।

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • एक सेट s परिभाषित करें
  • s के माध्यम से पुनरावृति के लिए एक सेट इटरेटर 'it' परिभाषित करें
  • q := क्वेरी की संख्या
  • जब तक q शून्येतर है, प्रत्येक पुनरावृत्ति के बाद q घटाएं:
    • क्वेरी प्रकार qt लें
    • qt के लिए:
      • यदि qt 1 है, x को s में डालें
      • यदि qt 2 है, x को s से हटाएं
      • यदि qt 3 है:
        • find(x) को it में कॉल करें
        • यदि it s के अंतिम तत्व के समान है:
          • NO प्रिंट करें
        • अन्यथा:
          • YES प्रिंट करें

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include <iostream> #include <set> using namespace std; int main(){     set<int> s;     set<int>::iterator it;     int q,x;     int qt;     cin >> q;     while(q--){         cin>>qt>>x;         switch(qt){             case 1:s.insert(x);                     break;             case 2:s.erase(x);                     break;             case 3:it=s.find(x);                     if(it==s.end())                         cout<<"No"<<endl;                     else                         cout<<"Yes"<<endl;                     break;         }     }     return 0; } 

इनपुट

7 1 5 1 8 1 3 2 8 1 9 3 8 3 3

आउटपुट

No Yes
  1. C++ STL में Set_Union का कार्यान्वयन C++ STL में Set_Union का कार्यान्वयन

    दो सेट का यूनियन उन तत्वों द्वारा बनाया जाता है जो या तो एक सेट में मौजूद होते हैं, या दोनों में। दूसरे सेट के वे तत्व जिनका पहला सेट में समान तत्व होता है, परिणाम सेट में कॉपी नहीं किए जाते। सामान्य सेट ऑपरेशन हैं: Set Union Set Intersection Symmetric Set Difference या Exclusive-OR Set Difference

  1. C++ STL में Set_Intersection का कार्यान्वयन C++ STL में Set_Intersection का कार्यान्वयन

    दो सेट का इंटरसेक्शन केवल उन तत्वों द्वारा बनता है जो दोनों सेट में कॉमन होते हैं। फंक्शन द्वारा कॉपी किए गए तत्व हमेशा पहले सेट से उसी क्रम में आते हैं। दोनों सेट में तत्व पहले से क्रमबद्ध होने चाहिए। सामान्य सेट ऑपरेशन हैं: Set Union Set Intersection Symmetric Set Difference या Exclusive-OR Set

  1. C++ STL में Set_Difference का कार्यान्वयन C++ STL में Set_Difference का कार्यान्वयन

    दो सेट का डिफरेंस केवल उन तत्वों द्वारा बनता है जो पहले सेट में मौजूद होते हैं, दूसरे सेट में नहीं। फंक्शन द्वारा कॉपी किए गए तत्व हमेशा पहले सेट से उसी क्रम में आते हैं। दोनों सेट में तत्व पहले से क्रमबद्ध होने चाहिए। सामान्य सेट ऑपरेशन हैं: Set Union Set Intersection Symmetric Set Difference या