c++ - Guaranteeing standard library containers are freed -


मान लें कि मेरे पास std :: vector & lt; std :: vector & lt; std :: string & gt; & gt; < / कोड>

मैं वर्तमान में जो कर रहा हूं वह यह है:

  std :: vector & lt; std :: vector & lt; std :: string & gt; & gt; obj; के लिए (ऑटो i: obj) {for (ऑटो j: i) j। ~ Basic_string (); i.clear (); }  

लेकिन बेशक यह केवल ऑब्जेक्ट को साफ़ करता है और जो मेमोरी रखता है उसे रिलीज़ नहीं करता।

क्या std :: vector कोई भी उपयोग करता है खुद के आधार उदाहरण के लिए स्मृति? और मैं यह कैसे गारंटी दे सकता हूं कि यह स्मृति जारी की गई है ताकि इसे किसी और चीज़ के लिए इस्तेमाल किया जा सके, या यह स्वतः हो जाएगा?

आपका कोड टूट गया है। आप ऑब्जेक्ट्स को नष्ट कर रहे हैं, जबकि अभी भी कंटेनर के स्वामित्व में हैं यह स्पष्ट नहीं है कि आपको क्या करना है, आपको ऐसा करना चाहिए, लेकिन आपको कुछ भी करने की ज़रूरत नहीं होनी चाहिए। इन कंटेनरों में वे वस्तुओं की मालिक हैं, और जब कंटेनर नष्ट हो जाता है, तो इसमें सब कुछ है।


Comments

Popular posts from this blog

eclipse plugin - Run java code error: Workspace is closed -

ios - How do I use CFArrayRef in Swift? -

scala - Play Framework - how to bind form to a session field -