C++ में मानचित्र पर पुनरावृति कैसे करें?

How Iterate Over Map C



इस त्वरित ट्यूटोरियल में, हम देखेंगे कि C++ में मानचित्र में पुनरावृति कैसे करें।

सी ++ में मानचित्र पर पुनरावृति करने के कई तरीके हैं। सी ++ के नए संस्करणों के साथ, सी ++ में मानचित्र पर पुनरावृति करने के लिए और अधिक उन्नत तरीके हैं।







आइए एक-एक करके चलते हैं।



stp::map . के साथ लूप के लिए उपयोग करना

हमने |_+_| . नाम से एक नक्शा बनाया है और इसमें की-वैल्यू जोड़े डाले।



<के लिये>
#शामिल
#शामिल
#शामिल
#शामिल
#शामिल
का उपयोग करते हुए नाम स्थानघंटे;
NSमुख्य() {
// मैप को इनिशियलाइज़ करें
नक्शा>'भारत','दिल्ली'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('नेपाल','काठमांडू'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('चीन','बीजिंग'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('फ्रांस','पेरिस'));

// लूप के लिए इटरेटर का उपयोग करके पुनरावृति करें
के लिये (ऑटोitr=देश की राजधानी का नक्शा।शुरू();itr!=देश की राजधानी का नक्शा।समाप्त();itr++)
{
घंटे::लागत <<itr->प्रथम// प्रवेश की चाबी
<< ':'
<<itr->दूसरा// एक्सेस वैल्यू
<<घंटे::एंडली;
}
वापसी 0;
}
</के लिये>
उत्पादन:
<के लिये>
चीन:बीजिंग
फ्रांस:पेरिस
भारत:दिल्ली
नेपाल:काठमांडू
</के लिये>

जैसा कि आप देख सकते हैं, हमने लूप के लिए देश: पूंजी (कुंजी: मान) का उपयोग करके मुद्रित किया है।





यदि आप ध्यान दें, तो हमने |_+_| . का उपयोग किया है पठनीयता के कारण मानचित्र इटरेटर के लिए विनिर्देशक टाइप करें। आप उपयोग कर सकते हैं |_+_| स्पष्ट रूप से भी।
ध्यान दें: यदि आप आउटपुट देखते हैं, तो इसे चाबियों द्वारा आरोही क्रम में क्रमबद्ध किया जाता है। ऐसा इसलिए है क्योंकि std::map आपूर्ति तुलनित्र (संस्करण C++ 11 आगे) के साथ एक क्रमबद्ध सहयोगी कंटेनर है। चूंकि हमने कोई तुलनित्र प्रदान नहीं किया है, इसलिए C++ ने स्ट्रिंग के लिए डिफ़ॉल्ट तुलनित्र का उपयोग किया है।

stp::map . के साथ लूप का उपयोग करते हुए

हम लूप के बजाय थोड़ी देर के लूप का भी उपयोग कर सकते हैं।



<के लिये>
#शामिल
#शामिल
#शामिल
#शामिल करें >
का उपयोग करते हुए नाम स्थानघंटे;
NSमुख्य() {
// मैप को इनिशियलाइज़ करें
नक्शा<स्ट्रिंग, स्ट्रिंग>देश की राजधानी का नक्शा;
// मानचित्र में विभिन्न तत्व डालें
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('भारत','दिल्ली'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('नेपाल','काठमांडू'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('चीन','बीजिंग'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('फ्रांस','पेरिस'));


// मानचित्र के लिए एक पुनरावर्तक बनाएं और शुरुआत के साथ आरंभ करें
ऑटोitr=देश की राजधानी का नक्शा।शुरू();
// लूप के दौरान इटरेटर का उपयोग करके पुनरावृति करें
जबकि (itr!=देश की राजधानी का नक्शा।समाप्त())
{
घंटे::लागत <<itr->प्रथम// प्रवेश की चाबी
<< ':'
<<itr->दूसरा// एक्सेस वैल्यू
<<घंटे::एंडली;
itr++;
}
वापसी 0;
}
</के लिये>
उत्पादन:
<के लिये>
चीन:बीजिंग
फ्रांस:पेरिस
भारत:दिल्ली
नेपाल:काठमांडू
</के लिये>

लूप के लिए रेंज आधारित का उपयोग करना (सी ++ 11 संस्करण आगे)

यदि आप सी ++ 11 संस्करण का उपयोग कर रहे हैं, तो सी ++ में मानचित्र पर पुनरावृति करने का यह सबसे शानदार तरीका है। आप पारंपरिक घनाकार लूप से बच सकते हैं और इसके बजाय इसका उपयोग कर सकते हैं।

<के लिये>
#शामिल
#शामिल
#शामिल

का उपयोग करते हुए नाम स्थानघंटे;
NSमुख्य() {
// मैप को इनिशियलाइज़ करें
नक्शा<स्ट्रिंग, स्ट्रिंग>देश की राजधानी का नक्शा;
// मानचित्र में विभिन्न तत्व डालें
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('भारत','दिल्ली'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('नेपाल','काठमांडू'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('चीन','बीजिंग'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('फ्रांस','पेरिस'));


// लूप के लिए इटरेटर का उपयोग करके पुनरावृति करें
के लिये (स्थिरांक ऑटो औरवह:देश की राजधानी का नक्शा) {
लागत <<वह।प्रथम << ':' <<वह।दूसरा<<'एन';
}

वापसी 0;
}
</के लिये>
उत्पादन:
चीन:बीजिंग
फ्रांस:पेरिस
भारत:दिल्ली
नेपाल:काठमांडू

कुंजी-मान जोड़े के साथ लूप के लिए श्रेणी-आधारित का उपयोग करना (सी ++ 17 संस्करण आगे)

यह संस्करण c++17 से समर्थित है और मानचित्र पर पुनरावृति के लिए अधिक लचीला तरीका प्रदान करता है। आप मानचित्र में की-वैल्यू पेयर को स्पष्ट रूप से एक्सेस कर सकते हैं जो और भी अधिक पठनीय समाधान प्रदान करता है।

<के लिये>
#शामिल
#शामिल
#शामिल

का उपयोग करते हुए नाम स्थानघंटे;
NSमुख्य() {
// मैप को इनिशियलाइज़ करें
नक्शा<स्ट्रिंग, स्ट्रिंग>देश की राजधानी का नक्शा;
// मानचित्र में विभिन्न तत्व डालें
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('भारत','दिल्ली'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('नेपाल','काठमांडू'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('चीन','बीजिंग'));
देश की राजधानी का नक्शा।डालने(जोड़ा<स्ट्रिंग, स्ट्रिंग>('फ्रांस','पेरिस'));


// लूप के लिए इटरेटर का उपयोग करके पुनरावृति करें
के लिये (स्थिरांक ऑटोऔर [मौलिक मूल्य] :देश की राजधानी का नक्शा) {
लागत <<चाभी<< ':' <<मूल्य<< 'एन';
}

वापसी 0;
}
</के लिये>
उत्पादन:
चीन:बीजिंग
फ्रांस:पेरिस
भारत:दिल्ली
नेपाल:काठमांडू

सी ++ में मानचित्र पर पुनरावृति कैसे करें, इसके बारे में सब कुछ है। हैप्पी कोडिंग!