C++ में इटरेटर अमान्यकरण के नियम: इटरेटर कब अमान्य हो जाते हैं?
सभी को नमस्ते! मैंने C++ सीखना शुरू किया है और ऑर्डर की सूची को प्रोसेस करने के लिए एक छोटा प्रोग्राम लिख रहा हूँ। मैं `std::vector` का उपयोग कर रहा हूँ। यहाँ सरलीकृत कोड है:\n\n```cpp\n#include \n#include \n\nint main() {\n std::vector orders = {101, 102, 103, 104, 105};\n \n // ऑर्डर 103 ढूंढें और उसे हटाएं\n for (auto it = orders.begin(); it != orders.end(); ++it) {\n if (*it == 103) {\n orders.erase(it); // <-- यहाँ मैं एलिमेंट हटा रहा हूँ\n }\n }\n \n // बचे हुए ऑर्डर प्रदर्शित करें\n for (int order : orders) {\n std::cout << order << " ";\n }\n return 0;\n}\n```\n\nVisual Studio 2022 में यह कोड कभी-कभी एरर के साथ क्रैश हो जाता है, और कभी-कभी अजीब संख्याएँ दिखाता है। मैंने पढ़ा है कि यह "इटरेटर अमान्यकरण" से संबंधित है, लेकिन मैं पूरी तरह से नहीं समझ पाया कि इसका क्या मतलब है।