मुझे ऐसा कोड मिला है जो इस तरह दिखता है:
for (std::list<item*>::iterator i=items.begin();i!=items.end();i++)
{
bool isActive = (*i)->update();
//if (!isActive)
// items.remove(*i);
//else
other_code_involving(*i);
}
items.remove_if(CheckItemNotActive);
मैं उन्हें अपडेट करने के तुरंत बाद निष्क्रिय वस्तुओं को हटा देना चाहूंगा, सूची को फिर से चलाने से बचने के लिए इनवर्टर। लेकिन अगर मैं टिप्पणी-बाहर की पंक्तियों को जोड़ता हूं, तो मुझे एक त्रुटि मिलती है जब मुझे मिलता है i++
: "सूची पुनरावृत्त न होने योग्य"। मैंने कुछ विकल्पों की कोशिश की, जो कथन के लिए वृद्धि नहीं हुई, लेकिन मुझे काम करने के लिए कुछ भी नहीं मिला।
जब आप एक std :: सूची चल रहे हैं तो आइटम निकालने का सबसे अच्छा तरीका क्या है?