c++ - Function that returns iterator from a map -


मेरे पास एक नक्शे & lt; K, V & gt; वेरिएबल वाला एक वर्ग है जिसमें इसका मान हो C'tor जैसे:

  वर्ग फू {map & lt; K, V & gt; मीटर; फू (नक्शा & lt; K, V & gt; और amp; newM): मी (न्यूएम) {} नक्शा & lt; K, V & gt; :: iterator बार () {...}}  

फ़ंक्शन बार मानचित्र m के माध्यम से दोहराता है, और कुछ तत्वों को कुछ तत्वों को वापस लौटाता है मैं फ़ंक्शन को इस तरह बुला रहा हूं:

  std :: map & lt; K, V & gt; नक्शा; // भरण मानचित्र फू फू (मानचित्र); मानचित्र & lt; K, V & gt; :: iterator = foo.bar ();  

मेरा सवाल है, इस समय, क्या यह map के सदस्य को इंगित करता है? या क्या इसे Foo.m पर कॉपी किया गया था और क्या इटरेटर के लिए एक अलग मानचित्र पर अंक?

यह नए नक्शे पर इंगित करेगा, जैसा कि आपने मानचित्र को वैल्यूएबल m में क्लास के सीटीओ में कॉपी किया था। इनिशियलाइज़ेशन सूची में m (newM) कथन std :: map वर्ग के कॉपी कन्स्ट्रक्टर का आह्वान करता है और पारित मैप के अलग-अलग तत्वों को नियति का नक्शा में प्रतिलिपि बनाता है मीटर । इसलिए जब आप बार पद्धति का आह्वान करते हैं, तो यह इस नए मानचित्र से इटरेटर को वापस कर देगा।

संपादित करें std :: नक्शा संदर्भ के रूप में:

  वर्ग फ़ू {सार्वजनिक: मानचित्र & lt; int, int & gt; और amp; मीटर; // नोट: यहां पर परिवर्तन, मैं एक संदर्भ फू (मैप & lt; int, int & gt; और amp; newM) संग्रहीत कर रहा हूं: मी (न्यूएम) {} नक्शे & lt; int, int & gt; :: iterator bar () {return m.begin ( );}}; Int main () {std :: map & lt; int, int & gt; map1; फु फू (नक्शा 1); मानचित्र & lt; int, int & gt; :: iterator = foo.bar (); अगर (यह == map1.begin ()) {std :: cout & lt; & lt; "इटरेटर बराबर हैं \ n"; }}  

Comments

Popular posts from this blog

Eclipse CDT variable colors in editor -

wpf - Custom Message Box Advice -

AJAX doesn't send POST query -