मैं एक std::vector
एक वेक्टर
मान लीजिए भरने के तीन तरीके के बारे में सोच सकते हैं भरने के विभिन्न तरीकों पर हम
vector<int> v(100, 0);
तो मैं इसे पकड़ करना चाहते हैं (1, 1, 1)। हम कर सकते हैं:
v.clear();
v.resize(3, 1);
या
v = vector<int>(3, 1);
और मैं एक और दृष्टिकोण सीखा:
vector<int>(3, 1).swap(v);
सबसे पहले सवाल यह है: उनमें से किसी को सबसे अच्छा तरीका है?
दूसरा प्रश्न: मान लें कि v
मुख्य समारोह के बाहर घोषित किया गया था। इस answer के अनुसार, डेटा खंड में स्मृति आवंटित की जाएगी। अगर मैं दूसरे या तीसरे दृष्टिकोण का उपयोग करता हूं, तो क्या स्मृति को ढेर पर आवंटित किया जाएगा?
यह बिल्कुल सही नहीं है। आदिम सरणी जहां भी घोषित किए जाते हैं, उनकी याददाश्त आवंटित करते हैं। 'वेक्टर' हमेशा ढेर-आवंटित होगा। int []! = वेक्टर। – Puppy