सी++ कक्षा::मानचित्र::उदाहरण मिटाएं

Si Kaksa Manacitra Udaharana Mita Em



'std::map' के लिए उपलब्ध कई ऑपरेशनों में से, 'मिटा' फ़ंक्शन उनकी कुंजियों के आधार पर तत्वों को हटाने के लिए एक महत्वपूर्ण उपकरण के रूप में सामने आता है। एक 'std::map' एक संगठित सहयोगी कंटेनर है जिसमें कुंजी-मूल्य जोड़े शामिल होते हैं। 'std::map' के भीतर तत्वों की व्यवस्था को उनकी कुंजियों के अनुसार लगातार क्रमबद्ध किया जाता है, जिससे प्रमुख मूल्यों के आधार पर खोज, सम्मिलन और विलोपन जैसे प्रभावी संचालन की सुविधा मिलती है।

C++ के दायरे में, 'std::map::erase' फ़ंक्शन 'std::map' वर्ग के सदस्य फ़ंक्शन के रूप में कार्य करता है, जो मानचित्र से विशिष्ट तत्वों को हटाने में सक्षम बनाता है। यह विभिन्न रूपों में आता है, जो यह निर्दिष्ट करने में लचीलापन प्रदान करता है कि किन तत्वों को मिटाना है। इस लेख में, हम 'std::map::erase' के विवरण पर प्रकाश डालेंगे, इसकी बहुमुखी प्रतिभा को दर्शाने के लिए कई उदाहरण प्रदान करेंगे।







उदाहरण 1: कुंजी द्वारा मिटाना

'std::map' में कुंजी द्वारा तत्वों को मिटाने की क्षमता C++ मानक टेम्पलेट लाइब्रेरी द्वारा प्रदान की गई एक मूलभूत सुविधा है। इस ऑपरेशन का उपयोग आमतौर पर तब किया जाता है जब आपको किसी प्रोग्राम में कुंजी-मूल्य जोड़े को प्रबंधित और हेरफेर करने की आवश्यकता होती है, और यह उनकी कुंजी के आधार पर विशिष्ट तत्वों को हटाने का एक सुविधाजनक तरीका प्रदान करता है। हम यह प्रदर्शित करने के लिए एक उदाहरण बनाएंगे कि मानचित्र बनाने के लिए 'std::map' का उपयोग कैसे करें, कुंजी द्वारा एक तत्व को मिटाएं, और फिर संशोधित मानचित्र प्रदर्शित करें।



#शामिल करें
#शामिल <मानचित्र>

मुख्य प्रवेश बिंदु ( ) {
एसटीडी::मानचित्र < int, std::string > मेरा नक्शा;
मेरा नक्शा [ 1 ] = 'लाल' ;
मेरा नक्शा [ 2 ] = 'नीला' ;
मेरा नक्शा [ 3 ] = 'हरा' ;

मेरा नक्शा.मिटाना ( 2 ) ;

के लिए ( स्थिरांक ऑटो & जोड़ी: myMap ) {
std::cout << जोड़ी.पहले << ':' << जोड़ा.दूसरा << std::endl;
}

वापस करना 0 ;
}


इस उदाहरण में, हम क्रमशः इनपुट/आउटपुट संचालन और 'std::map' कंटेनर के उपयोग को सक्षम करने के लिए आवश्यक C++ मानक पुस्तकालयों जैसे और को शामिल करके शुरू करते हैं। 'मुख्य' फ़ंक्शन के भीतर, हम 'myMap' नामक 'std::map' को आरंभ करते हैं जहां पूर्णांक कुंजियाँ संबंधित स्ट्रिंग मानों से जुड़ी होती हैं। मानचित्र में तीन कुंजी-मूल्य जोड़े जोड़े गए हैं जो रंगों का प्रतिनिधित्व करते हैं: कुंजी 1 के लिए 'लाल', कुंजी 2 के लिए 'नीला', और कुंजी 3 के लिए 'हरा'। फिर, हम 'मिटा' सदस्य फ़ंक्शन का उपयोग करते हैं। हमारे मानचित्र से कुंजी 2 से जुड़े तत्व को हटाने के लिए std::map' वर्ग। नतीजतन, इस ऑपरेशन के बाद 'नीला' रंग अब मानचित्र का हिस्सा नहीं है।



मानचित्र की परिणामी स्थिति को प्रदर्शित करने के लिए, हम एक 'for' लूप का उपयोग करते हैं जो 'myMap' के भीतर प्रत्येक कुंजी-मूल्य जोड़ी के माध्यम से पुनरावृत्त होता है। हम कंसोल पर प्रत्येक कुंजी-मूल्य जोड़ी को प्रिंट करने के लिए लूप के अंदर 'std::cout' ऑब्जेक्ट का उपयोग करते हैं। अंत में, 'रिटर्न 0' कथन 'मुख्य' फ़ंक्शन को समाप्त करता है जो हमारे कार्यक्रम के सफल निष्पादन का संकेत देता है।





कुंजी 2 ('नीला') वाला तत्व मिट जाने के बाद आउटपुट शेष कुंजी-मूल्य जोड़े को 'std::map' में प्रदर्शित करता है जिसके परिणामस्वरूप '1: लाल' और '3: हरा' आउटपुट होता है।



उदाहरण 2: Iterator द्वारा मिटाना

C++ में, इटरेटर ऐसी वस्तुएं हैं जो एक कंटेनर के भीतर तत्वों के नेविगेशन की सुविधा प्रदान करती हैं, तत्वों तक पहुंचने, संशोधित करने या हटाने का साधन प्रदान करती हैं। तत्वों को हटाने के लिए 'std::map::erase' फ़ंक्शन का उपयोग इटरेटर के साथ भी किया जा सकता है।

यहाँ एक उदाहरण है:

#शामिल करें
#शामिल <मानचित्र>

मुख्य प्रवेश बिंदु ( ) {
एसटीडी::मानचित्र < int, std::string > फलफ़ोल्डर;
फलफ़ोल्डर [ 1 ] = 'आम' ;
फलफ़ोल्डर [ 2 ] = 'नारंगी' ;
फलफ़ोल्डर [ 3 ] = 'अनानास' ;
फलफ़ोल्डर [ 4 ] = 'अंगूर' ;

ऑटो इट = फ्रूटमैप.फाइंड ( 2 ) ;

अगर ( यह ! = फलमैप.अंत ( ) ) {
फलनक्शा.मिटाना ( यह ) ;
}

के लिए ( स्थिरांक ऑटो & जोड़ी: फल मानचित्र ) {
std::cout << जोड़ी.पहले << ':' << जोड़ा.दूसरा << std::endl;
}

वापस करना 0 ;
}


प्रदान किया गया C++ कोड कुंजी-मूल्य जोड़े को संग्रहीत करने के लिए 'fruitMap' नामक 'std::map' घोषित करने से शुरू होता है, पूर्णांकों को संबंधित फल नामों के साथ जोड़ता है। हम मानचित्र को चार अलग-अलग फलों की प्रविष्टियों से भर देते हैं: 'आम', 'संतरा', 'पाइनएप्पल' और 'अंगूर'। उसके बाद, हम एक पुनरावर्तक (आईटी) प्राप्त करने के लिए 'खोज' फ़ंक्शन का उपयोग करते हैं जो 'फ्रूटमैप' के भीतर 2 के मुख्य मान वाले तत्व को इंगित करता है। फिर, हम जांचते हैं कि क्या पुनरावर्तक 'अंत()' के बराबर नहीं है, यह सुनिश्चित करने के लिए कि निर्दिष्ट कुंजी वाला तत्व मानचित्र में मौजूद है।

सशर्त ब्लॉक में, हम 'मिट' फ़ंक्शन का उपयोग करके 'इट' इटरेटर द्वारा इंगित किए गए तत्व को मिटा देते हैं। अंत में, हम 'फॉर' लूप का उपयोग करके संशोधित 'फ्रूटमैप' में शेष तत्वों के माध्यम से पुनरावृति करते हैं।

अंतिम आउटपुट मिटाने के बाद संशोधित 'फ्रूटमैप' सामग्री प्रदर्शित करता है।

उदाहरण 3: किसी श्रेणी को मिटाना

C++ में 'std::map' कंटेनर एक निर्दिष्ट सीमा के भीतर तत्वों को मिटाने के लिए एक सुविधाजनक तरीका प्रदान करता है। 'मिटा' फ़ंक्शन आपको पुनरावृत्तियों के आधार पर मानचित्र से उन तत्वों को हटाने की अनुमति देता है जो हटाए जाने वाली सीमा की शुरुआत और अंत का प्रतिनिधित्व करते हैं।

अब, आइए एक उदाहरण के साथ 'std::map' का उपयोग करके एक सीमा को मिटाने की अवधारणा का पता लगाएं:

#शामिल करें
#शामिल <मानचित्र>

मुख्य प्रवेश बिंदु ( ) {
एसटीडी::मानचित्र < int, std::string > नया नक्शा;
नया नक्शा [ 1 ] = 'घोड़ा' ;
नया नक्शा [ 2 ] = 'शेर' ;
नया नक्शा [ 3 ] = 'चीता' ;
नया नक्शा [ 4 ] = 'बिल्ली' ;

newMap.मिटाएँ ( नया नक्शा.निचला_बाउंड ( 2 ) , न्यूमैप.अपर_बाउंड ( 3 ) ) ;

के लिए ( स्थिरांक ऑटो & जोड़ी: नया नक्शा ) {
std::cout << जोड़ी.पहले << ':' << जोड़ा.दूसरा << std::endl;
}

वापस करना 0 ;
}


प्रोग्राम 'newMap' नामक 'std::map' घोषित करने से शुरू होता है जो पूर्णांक कुंजियों को संबंधित स्ट्रिंग मानों के साथ जोड़ता है। उसके बाद, हम वर्गाकार ब्रैकेट ऑपरेटर का उपयोग करके मानचित्र को कुंजी-मूल्य जोड़े से भर देते हैं। उदाहरण के लिए, हम (1, 'घोड़ा'), (2, 'शेर'), (3, 'टाइगर'), और (4, 'कैट') के कुंजी-मूल्य जोड़े को 'न्यूमैप' में निर्दिष्ट करते हैं।

अगले महत्वपूर्ण ऑपरेशन में मानचित्र से तत्वों को मिटाने के लिए पुनरावर्तकों का उपयोग करना शामिल है। इरेज़ फ़ंक्शन को 'newMap.lower_ound(2)' और 'newMap.upper_ound(3)' तर्कों के साथ नियोजित किया जाता है। यह उन कुंजियों वाले तत्वों को मिटा देता है जो श्रेणी (2, 3) में आते हैं। दूसरे शब्दों में, यह मानचित्र से 'शेर' और 'बाघ' प्रविष्टियाँ हटा देता है। इस ऑपरेशन के बाद, मानचित्र में केवल 'घोड़ा' और 'बिल्ली' के अनुरूप कुंजी 1 और 4 वाले तत्व शामिल हैं।

अंत में, हम मानचित्र में शेष तत्वों के माध्यम से पुनरावृत्त करने और उनके कुंजी-मूल्य जोड़े को कंसोल पर प्रिंट करने के लिए एक रेंज-आधारित 'फॉर' लूप का उपयोग करते हैं।

परिणामस्वरूप, आउटपुट निम्नलिखित प्रदर्शित करता है:

उदाहरण 4: विधेय के आधार पर मिटाना

किसी विधेय के आधार पर मिटाने का तात्पर्य किसी निर्दिष्ट स्थिति या मानदंड के आधार पर डेटा संरचना से तत्वों को हटाना है, जैसे कंटेनर। तत्वों को सशर्त रूप से हटाने के लिए 'std::map::erase' का उपयोग एक विधेय फ़ंक्शन के साथ भी किया जा सकता है। आइए निम्नलिखित उदाहरण पर विचार करें:

#शामिल करें
#शामिल <मानचित्र>
#<एल्गोरिदम>शामिल करें

मुख्य प्रवेश बिंदु ( ) {

एसटीडी::मानचित्र < int, std::string > मेरा नक्शा = {
{ 1 , 'जनवरी' } ,
{ 2 , 'फ़रवरी' } ,
{ 3 , 'मार्च' } ,
{ 4 , 'अप्रैल' } ,
{ 5 , 'मई' }
} ;

स्वतः विधेय = [ ] ( स्थिरांक std::युग्म < int, std::string >& तत्व ) {
वापस करना तत्व.दूसरा.लंबाई ( ) < 5 ;
} ;

मेरा नक्शा.मिटाना ( std::remove_if ( मेरा नक्शा.शुरू ( ) , myMap.end ( ) , विधेय ) , myMap.end ( ) ) ;

std::cout << ' \एन विधेय के आधार पर तत्वों को मिटाने के बाद मानचित्र:' << std::endl;
के लिए ( स्थिरांक ऑटो & जोड़ी: myMap ) {
std::cout << जोड़ी.पहले << ':' << जोड़ा.दूसरा << std::endl;
}

वापस करना 0 ;
}


प्रोग्राम आवश्यक हेडर फ़ाइलों को शामिल करके शुरू होता है। एक 'std::map' जिसे 'myMap' कहा जाता है, को 'मुख्य' फ़ंक्शन में घोषित और आरंभ किया जाता है। इसमें कुंजी-मूल्य जोड़े शामिल हैं जो महीनों के नाम और उनके संबंधित संख्यात्मक मानों का प्रतिनिधित्व करते हैं। इसके बाद, एक 'लैम्ब्डा' फ़ंक्शन (विधेय) को परिभाषित किया गया है। यह 'लैम्ब्डा' फ़ंक्शन 'std::remove_if' एल्गोरिथम के लिए एक विधेय के रूप में कार्य करता है। यह सत्यापित करता है कि मानचित्र तत्व से जुड़े स्ट्रिंग मान की लंबाई पांच वर्णों से कम है या नहीं।

फिर 'std::remove_if' एल्गोरिथम का उपयोग 'std::map' के 'मिटाएं' फ़ंक्शन के संयोजन में किया जाता है। यह संयोजन विधेय की वैधता के आधार पर तत्वों को मानचित्र से हटा देता है।

प्रोग्राम चलाने के बाद, पांच से कम कुंजियों वाले तत्वों को मूल मानचित्र से हटा दिया जाता है, जो 'std::map' का उपयोग करके एक विधेय के आधार पर मिटाने का प्रदर्शन करता है।

निष्कर्ष

अंत में, 'std::map::erase' फ़ंक्शन 'std::map' से तत्वों को हटाने के लिए C++ में एक बहुमुखी उपकरण है। चाहे कुंजी, पुनरावर्तक, श्रेणी द्वारा मिटाया जा रहा हो, या किसी विधेय के आधार पर, 'std::map::erase' फ़ंक्शन लचीलापन और उपयोग में आसानी प्रदान करता है। इस फ़ंक्शन में महारत हासिल करके, C++ डेवलपर्स 'std::map' कंटेनरों के भीतर डेटा को कुशलतापूर्वक प्रबंधित और हेरफेर कर सकते हैं, जिससे उनका कोड मजबूत और बनाए रखना आसान हो जाता है।