कोई मुझे कैसे एक वेक्टर के लिए स्मृति को आबंटित करने का एक उदाहरण दे सकते हैं के लिए स्मृति आवंटित? मुझे कुछ लाइनों की ज़रूरत है। मैं एक सदिश कि 20-30 तत्वों में लगता है .. लेकिन जब मैं इसे अदालत और यह संकलन करने की कोशिश मैं केवल प्रविष्टियों में से पहले दो ..एक वेक्टर
उत्तर
एक std::vector अपने स्वयं के स्मृति प्रबंधन करता है। आप reserve() और resize() तरीकों का उपयोग कर सकते हैं यह काफी स्मृति को आबंटित की है, मदों की एक निश्चित राशि फिट करने के लिए:
std::vector<int> vec1;
vec1.reserve(30); // Allocate space for 30 items, but vec1 is still empty.
std::vector<int> vec2;
vec2.resize(30); // Allocate space for 30 items, and vec2 now contains 30 items.
() नहीं होना चाहिए' उनके डिफ़ॉल्ट निर्माता (यानी प्रकार है अगर 'Elem', तो' Elem() ') – swegi
@swegi, द्वारा निर्माण के साथ तत्व कहते हैं डिफ़ॉल्ट, हां। 'आकार बदलें() 'एक दूसरा तर्क भी ले सकता है जिसे सभी नए तत्वों में कॉपी किया जाएगा। –
लेकिन, अगर आप केवल '.push_back() 'का उपयोग कर रहे हैं, तो क्या आपको पुनः आवंटित/आकार बदलना होगा? – Charles
मिल this पर एक नजर डालें आप list.reserve का उपयोग (एन);
वेक्टर अपनी स्मृति का ख्याल रखता है, और तुम सच में सब पर रिजर्व() का उपयोग करने की जरूरत नहीं होनी चाहिए। यदि आप पहले ही जानते हैं कि वेक्टर सूची कितनी बड़ी होनी चाहिए, तो यह केवल एक प्रदर्शन सुधार है।
उदाहरण के लिए:
std::vector<int> v;
v.reserve(110); // Not required, but improves initial loading performance
// Fill it with data
for(int n=0;n < 100; n++)
v.push_back(n);
// Display the data
std::vector<int>::iterator it;
for(it = v.begin(); it != v.end(); ++it)
cout << *it;
- 1. एक वेक्टर
- 2. एक वेक्टर
- 3. एक वेक्टर
- 4. एक वेक्टर
- 5. एक वेक्टर
- 6. एक वेक्टर
- 7. सी ++ कैसे एक वेक्टर
- 8. एसटीएल एक वेक्टर क्लोनिंग
- 9. एक एसटीएल वेक्टर
- 10. आर एक वेक्टर
- 11. एक प्रारंभिक वेक्टर
- 12. sizeof() एक वेक्टर
- 13. MATLAB - एक वेक्टर
- 14. कैसे एक वेक्टर
- 15. क्लोजर - एक रेफ वेक्टर
- 16. push_back() एक वेक्टर
- 17. एक एसएलएल वेक्टर
- 18. कैसे एक वेक्टर
- 19. एक std :: वेक्टर
- 20. मैं कैसे एक वेक्टर
- 21. वेक्टर प्रारंभिक वेक्टर
- 22. वेक्टर
- 23. वेक्टर
- 24. वेक्टर
- 25. वेक्टर
- 26. वेक्टर
- 27. वेक्टर
- 28. वेक्टर
- 29. वेक्टर
- 30. वेक्टर
आप किसी भी कोड आप दिखा सकता है? आपके प्रश्न की आखिरी पंक्ति वास्तव में मुझे – Default
भ्रमित करती है हां, ऐसा लगता है जैसे आपने अपने कोड में गलती की है। आप शायद इस पोस्ट, 'आकार पूरा करने के लिए मैन्युअल रूप से स्थान आरक्षित करने के लिए – Oystein