मुझे लगता है कि एसटीएल सेट बाइनरी सर्च पेड़ की सार डेटा संरचना पर आधारित हैं। तो अंतर्निहित डेटा संरचना क्या है? एक सरणी?
जैसा कि अन्य ने इंगित किया है, यह भिन्न होता है। एक सेट आमतौर पर एक पेड़ (लाल-काला पेड़, संतुलित पेड़, आदि) के रूप में लागू किया जाता है, लेकिन अन्य कार्यान्वयन मौजूद हो सकते हैं।
इसके अलावा, सेट के लिए कैसे सम्मिलित() काम करता है?
यह आपके सेट के अंतर्निहित कार्यान्वयन पर निर्भर करता है।यदि इसे बाइनरी पेड़ के रूप में लागू किया गया है, तो Wikipedia में सम्मिलित() फ़ंक्शन के लिए एक नमूना रिकर्सिव कार्यान्वयन है। इसे आज़माने की आपकी इच्छा हो सकती है।
सेट कैसे जांचता है कि तत्व पहले से मौजूद है या नहीं?
यदि यह एक पेड़ के रूप में लागू किया जाता है, तो यह पेड़ को पार करता है और प्रत्येक तत्व की जांच करता है। हालांकि, सेट डुप्लिकेट तत्वों को संग्रहीत करने की अनुमति नहीं देते हैं। यदि आप एक सेट चाहते हैं जो डुप्लिकेट तत्वों को अनुमति देता है, तो आपको एक मल्टीसेट की आवश्यकता है।
मैं विकिपीडिया पर पढ़ा है कि एक और तरीका एक सेट लागू करने के लिए एक हैश तालिका के साथ है। यह कैसे काम करेगा?
आप हैश_सेट का जिक्र कर रहे हैं, जहां हैश टेबल का उपयोग करके सेट लागू किया गया है। आपको अपने तत्व को स्टोर करने के लिए कौन सा स्थान जानने के लिए हैश फ़ंक्शन प्रदान करना होगा। यह कार्यान्वयन आदर्श है जब आप किसी तत्व को जल्दी से खोजना चाहते हैं। हालांकि, यदि आपके तत्वों को विशेष क्रम में संग्रहीत करना महत्वपूर्ण है, तो पेड़ कार्यान्वयन अधिक उचित है क्योंकि आप इसे प्रीऑर्डर, इनऑर्डर या पोस्टऑर्डर को पार कर सकते हैं।
जहां तक मुझे पता है, std :: set एक आदेशित कंटेनर है। यदि यह एक बीएसटी ट्रैवर्सिंग का आदेश कैसे दिया जा सकता है? – Shasha99