मुझे यकीन है कि आप जानते हैं कि वस्तुओं std::vector<X>का एक पूरा गुच्छा स्टोर करता है X, है ना? लेकिन अगर आपके पास एक है std::map<X, Y>, जो वास्तव में संग्रहीत करता है वह एस का एक पूरा गुच्छा है std::pair<const X, Y>। यह वास्तव में एक नक्शा है - यह कुंजी और संबंधित मूल्यों को एक साथ जोड़ देता है।
जब आप एक से अधिक पुनरावृति std::mapकरते हैं, तो आप इन सभी में से अधिक पुनरावृत्ति कर रहे हैं std::pair। जब आप इन पुनरावृत्तियों में से किसी एक का विरोध करते हैं, तो आपको एक std::pairकुंजी और उससे संबंधित मान मिलता है।
std::map<std::string, int> m = /* fill it */;
auto it = m.begin();
यहां, यदि आप अब करते हैं, तो आपको मानचित्र में पहले तत्व *itके std::pairलिए मिलेगा ।
अब प्रकार std::pairआपको दो सदस्यों के माध्यम से इसके तत्वों तक पहुंच प्रदान करता है: firstऔर second। इसलिए यदि आपके पास एक std::pair<X, Y>कॉल है p, p.firstएक Xऑब्जेक्ट है और p.secondएक Yऑब्जेक्ट है।
तो अब आप जानते हैं कि एक std::mapपुनरावृत्ति करने वाला आपको एक देता है std::pair, तो आप इसके तत्वों का उपयोग कर सकते हैं firstऔर second। उदाहरण के लिए, (*it).firstआपको कुंजी (*it).secondदेगा और आपको मूल्य देगा। इन के बराबर हैं it->firstऔर it->second।
std::mapसंग्रहीत करता है । मान को संदर्भित करता है ।map::iterator.second