मान लीजिए कि मेरे पास स्ट्रक्चर के std :: वेक्टर हैं। यदि वेक्टर स्पष्ट है() डी? स्मृति के साथ क्या होता है?क्या std :: vector स्मृति स्पष्ट पर मुक्त है?
std::vector<myStruct> vecs;
vecs.resize(10000);
vecs.clear();
क्या स्मृति को मुक्त किया जाएगा, या फिर भी वेक्स वैरिएबल से पुन: प्रयोज्य बफर के रूप में जोड़ा जाएगा?
'क्षमता()' को कॉल करने का प्रयास करें। –
सभी को धन्यवाद। मैं चाहता हूं कि स्मृति मुक्त हो - गारंटीकृत। इसलिए मैं नए std: vector का उपयोग कर वेक्टर आवंटित करता हूं, फिर जब मैं कर रहा हूं तो हटाएं। इस प्रकार स्मृति मुक्त होने की गारंटी है। –
@ एंड्रयूएस: गतिशील आवंटन का एकमात्र प्रभाव एक अक्षमता पेश करना है। वेक्टर खाली करने के उचित तरीके के लिए जेरी का जवाब देखें। एक पाश शरीर में एक और अच्छा तरीका है कि वेक्टर को लूप बॉडी में स्थानीय बनाना है, यानी इसे लूप बॉडी के अंदर घोषित करें। –