c++ - std::map::iterator references non-existing object? -


निम्न कोड को ध्यान में रखते हुए:

  वर्ग MyClass {सार्वजनिक: int someInt; मायक्लास (): कुछ इंट (666) {}}; Int main () {std :: map & lt; int, MyClass & gt; myMap; Std :: map & lt; int, MyClass & gt; :: iterator = myMap.end (); कॉन्स्ट मायक्लास & amp; रेफरी = यह- & gt; दूसरा; Std :: cout & lt; & lt; Ref.someInt & lt; & lt; std :: endl; }   

चूंकि नक्शा खाली है और यह = myMap.end () , क्या वस्तु it-> second संदर्भ करता है? क्या यह एक अमान्य संदर्भ है क्योंकि यह = myMap.end () ?

मानचित्र & lt; int, MyClass & gt; का एक उदाहरण नहीं बनाता है MyClass

वस्तु क्या it-> दूसरा < / कोड> संदर्भ? क्या यह एक अमान्य संदर्भ है क्योंकि यह = myMap.end () ?

वास्तव में myMap.end () एक वैध इटरेटर है लेकिन यह dereferenced नहीं होना चाहिए। यह-> दूसरा सही ढंग से करने का प्रयास करता है और अपरिभाषित व्यवहार का कारण बनता है।

मानचित्र & lt; int, MyClass & gt; एक उदाहरण MyClass का।

यह सच है, लेकिन अप्रासंगिक myMap.end () हमेशा myMap â ???? की सामग्री की कोई बात नहीं होगी एक पिछले एक अंत के लिए एक संदर्भ होते हैं ?? इटरेटर, जिसे कभी भी डीरेंस नहीं किया जाना चाहिए।

Comments

Popular posts from this blog

qt - switch/case statement in C++ with a QString type -

python - sqlite3.OperationalError: near "REFERENCES": syntax error - foreign key creating -

Python's equivalent for Ruby's define_method? -