में मेमोरी आवंटन मैं एसटीएल सी ++ में मेमोरी रीयलोकेशन के बारे में थोड़ा उलझन में हूं। उदाहरण के लिए, मुझे पता है कि क्या मैं vector
घोषित करता हूं, और इसमें तत्वों को धक्का देना जारी रखता हूं, वेक्टर को किसी बिंदु पर स्मृति स्थान के पुनर्वितरण की आवश्यकता होती है और इसमें सभी मौजूदा तत्वों की प्रतिलिपि होती है। लिंक्ड सूचियों के लिए कोई पुनर्वितरण की आवश्यकता नहीं है, क्योंकि तत्व स्टैक में लगातार संग्रहित नहीं होते हैं और प्रत्येक तत्व अगले तत्व को इंगित करने के लिए पॉइंटर का उपयोग करता है।एसटीएल सी ++
मेरा सवाल है, सी ++ में अन्य एसटीएल की स्थिति क्या है? उदाहरण के लिए, string
, map
, unordered_map
? क्या उन्हें पुनर्वितरण की आवश्यकता है?
बेशक यह प्रत्येक कंटेनर के लिए भिन्न होता है, लेकिन उन्हें सूचीबद्ध करने के लिए शायद इस साइट के लिए उपयुक्त नहीं है। – BoBTFish
'स्ट्रिंग' ज्यादातर 'वेक्टर' जैसा ही है। – phantom
पुनर्वितरण इटेटरेटर्स को अमान्य करने की ओर जाता है, इसलिए यह लगभग * लगभग * http://stackoverflow.com/q/3329956/179910 का डुप्लिकेट है। –