Problem

1 /10


सी ++ में सेट करता है

Theory Click to read/hide

C++

में सेट होता है
सेट (सेट) — यह एक कंटेनर है जो स्वचालित रूप से जोड़े गए तत्वों को आरोही क्रम में क्रमबद्ध करता है। लेकिन समान मान जोड़ते समय, set केवल इसका एक उदाहरण संग्रहीत करेगा (multiset - multiset- डुप्लिकेट हो सकते हैं)। जब सेट में एक नया तत्व जोड़ा जाता है, तो यह तुरंत जगह में आ जाता है ताकि सॉर्ट ऑर्डर का उल्लंघन न हो।  

C++ में सेट को STL मानक टेम्प्लेट लाइब्रेरी में सेट (मल्टीसेट) वर्ग के माध्यम से परिभाषित किया गया है।

सेट बाइनरी लाल-काले पेड़ हैं। खोजें, हटाएं, और सम्मिलित करें संचालन में लॉगरिदमिक जटिलता होती है।
 
सेट का उपयोग करने के लिए, आपको “set” लाइब्रेरी शामिल करनी होगी: #शामिल <सेट>
घोषणा सेट करें:
सेट करें<int> मायसेट; // एक खाली सेट घोषित करना। मल्टीसेट<int> मायसेट; // एक खाली मल्टीसेट की घोषणा।  
एक सेट (सेट) के साथ काम करने के लिए कार्य
 
खाली() - कंटेनर में तत्वों की अनुपस्थिति की जांच करता है
 
size() - कंटेनर में तत्वों की संख्या लौटाता है
 
clear() - कंटेनर को साफ़ करता है
 
insert() - तत्वों को सम्मिलित करता है
 
erase() - तत्वों को हटाता है
 
count() - दी गई कुंजी से मेल खाने वाले तत्वों की संख्या लौटाता है
 
find() - एक विशिष्ट कुंजी के साथ एक तत्व ढूँढता है
 
lower_bound() - दिए गए मान से कम पहले तत्व के लिए एक पुनरावर्तक लौटाता है
 
upper_bound() - निर्दिष्ट मान से अधिक पहले तत्व के लिए एक पुनरावर्तक लौटाता है
 

 
सेट और मल्टीसेट उदाहरण
#शामिल <iostream> #शामिल <सेट> नेमस्पेस एसटीडी का उपयोग करना; मुख्य प्रवेश बिंदु() { सेट करें<int> mySet1; // एक खाली सेट घोषित किया मल्टीसेट<int> mySet2; // एक खाली मल्टीसेट घोषित किया // सेट में तत्व जोड़ें mySet1.insert (1); mySet1.insert (2); mySet1.insert (3); mySet1.insert (1); // मल्टीसेट में तत्व जोड़ें mySet2.insert (1); mySet2.insert (2); mySet2.insert (3); mySet2.insert (1); सेट करें<int>::इटरेटर इट; // एक पुनरावर्तक बनाएँ for(it = mySet1.begin(); it != mySet1.end(); it++) { // सभी तत्वों को प्रदर्शित करें cout << (*यह) << " "; // सेट } cout << एंडल; for(it = mySet2.begin(); it != mySet2.end(); it++) { // सभी तत्वों को आउटपुट करें cout << (*यह) << " "; // मल्टीसेट } वापसी 0; }

Problem

इनपुट
एक संख्या N दी गई है (1 <= N <= 100000) – अनुरोधों की संख्या। निम्न N पंक्तियों में ‘+’ या ‘-’ और नंबर a (1 <= a <= 1000000000)। यदि प्रतीक – ‘+’, तो संख्या a को सेट में जोड़ दिया जाता है, अन्यथा – उन सभी a मानों को हटा देता है जो पहले जोड़े गए थे।
यह गारंटी है कि जब कोई नंबर हटा दिया जाता है, तो वह सेट में शामिल होता है।

छाप
सभी प्रश्नों के पूरा होने के बाद सेट में सभी अद्वितीय तत्वों को आरोही क्रम में प्रदर्शित करना आवश्यक है, या यदि सेट में कोई तत्व नहीं है तो "-1"।

 
उदाहरण
<टेबल क्लास = "टेबल-एसएम टेबल-बॉर्डर टेबल-स्ट्राइप्ड टेबल-लिस्ट-टेस्ट"> <सिर> <थ वर्ग = "अंक"> # <वें>इनपुट <वें>आउटपुट <शरीर> 1 <टीडी>
3
+1
+2
-1
2 2 <टीडी>
3
+1
+1
-1
-1 3 <टीडी>
3
+1
+1
+1
1