सी ++ 03 स्टैंडर्ड § 23.2.4.3/3 std::vector::erase(iterator position)
वर्णन करता है और विशेष रूप से कहते हैंक्या std :: vector :: मिटाएं() मिटाने के बिंदु पर पुनरावर्तक को अमान्य कर देता है?
मिटा की बात के बाद सभी iterators और संदर्भ अमान्य हो जाएगा।
पर इटरेटर मिटा के बिंदु अवैध नहीं है? विशेष रूप से अगर मैं एक ही तत्व के साथ एक vector
है और मैं एक स्थानीय चर में begin()
इटरेटर कॉपी और फिर फोन
vec.erase(vec.begin())
कि इटरेटर एक स्थानीय चर में मेरे पास अवैध मिलता है या नहीं होगा?
iterators विलोपन की बात या के बाद के बाद और विलोपन के बिंदु सहित अवैध होगी?
इसका मतलब है कि मिटाए जाने के बाद सभी इटरेटर्स को अमान्य कर दिया गया है, इसलिए – radar
"अमान्य" मेरे द्वारा मिटाए गए एक का अर्थ यह है कि ऑब्जेक्ट इटरेटर/संदर्भ का मतलब है कि कहीं भी कहीं बाहर है, आप बस इसे सही ढंग से इंगित नहीं कर रहे हैं। मिटाने के बिंदु के बाद यही होता है। * * क्षरण के बिंदु पर, वस्तु अभी चली गई है। – dlf
@ राजेश: मैं आपको विश्वास दिलाता हूं कि इसका मतलब यह नहीं है। –