मेरे पास एक वेक्टर है जो कई ऑब्जेक्ट्स को गतिशील रूप से तत्काल गतिशील करता है, और मैं वेक्टर के माध्यम से पुन: प्रयास करने की कोशिश कर रहा हूं और कुछ तत्वों को हटा सकता हूं (वेक्टर से हटाकर वस्तु को नष्ट कर सकता हूं), लेकिन मुझे परेशानी हो रही है।वेक्टर में संग्रहीत वस्तुओं को पॉइंटर्स को मिटाने और हटाने के लिए कैसे?
vector<Entity*> Entities;
/* Fill vector here */
vector<Entity*>::iterator it;
for(it=Entities.begin(); it!=Entities.end(); it++)
if((*it)->getXPos() > 1.5f)
Entities.erase(it);
जब इकाई वस्तुओं में से किसी एक अभिकथन त्रुटि के साथ xPos> 1.5, कार्यक्रम दुर्घटनाओं के लिए मिलता है ... किसी को भी पता है कि मैं गलत क्या कर रही हूं: यहाँ कि यह दिखता है?
मैं उपयोग कर रहा हूँ कुलपति ++ 2008
कृपया अपने प्रश्नों को उस भाषा/पर्यावरण के साथ टैग करें जिसे आप उपयोग कर रहे हैं ताकि हम जान सकें कि आप मुख्य पृष्ठ से क्या उपयोग कर रहे हैं (और आपको कई और विचार मिलेंगे)। – Zifre
लेकिन आप नहीं जानते कि वह अपने शेष कोड में वेक्टर के साथ क्या कर रहा है! आम तौर पर, एक वेक्टर पहला विकल्प कंटेनर होना चाहिए, अन्य चीजें बराबर होती हैं। –
सामान्य रूप से, आपको हाथ से लिखित loops के लिए एसटीएल एल्गोरिदम पसंद करना चाहिए। – rlbond