मैं objList
में 10 Obj
ऑब्जेक्ट को स्टोर करना चाहता हूं, लेकिन मुझे नहीं पता कि इस मामले में delete
उचित उपयोग कब होता है। यदि मैं नीचे दिए गए कोड में delete Obj;
का उपयोग करता हूं, जहां मैं नीचे कोड में नोट करता हूं, तो Obj
अभी भी objList
में संग्रहीत किया जाएगा?"हटाएं" का उपयोग कब करें?
struct Obj {
int u;
int v;
};
vector<Obj> objList;
int main() {
for(int i = 0; i < 10; i++) {
Obj *obj = new Obj();
obj->u = i;
obj->v = i + 1;
objList.push_back(*obj);
// Should i use "delete Obj;" here?
}
}
'नई' की आवश्यकता नहीं है .. ऑब्जेक्ट को 'ओब्ज obj;' का उपयोग करके ढेर पर बनाएं। – Naveen
और यहां तक कि यदि आपको 'नया' की आवश्यकता है, तो एक सरल 'हटाएं' पर्याप्त नहीं होगा - अगर 'push_back' फेंकता है, तो आपको रिसाव मिल गया है। गतिशील संसाधनों को प्रबंधित करने के लिए आपको हमेशा [स्मार्ट पॉइंटर्स] (http://stackoverflow.com/questions/106508) या अन्य [RAII] (http://stackoverflow.com/questions/76796) ऑब्जेक्ट्स का उपयोग करना चाहिए। –