std::vector<CustomClass *> whatever(20000);
या:
std::vector<CustomClass *> whatever;
whatever.reserve(20000);
पूर्व सरणी का वास्तविक आकार निर्धारित करता है - यानी, इसे 20000 पॉइंटर्स का वेक्टर बनाता है। उत्तरार्द्ध वेक्टर को खाली छोड़ देता है, लेकिन 20000 पॉइंटर्स के लिए स्थान रखता है, इसलिए आप इसमें (ऊपर तक) सम्मिलित कर सकते हैं, इसके बिना यह वास्तविक नहीं होता है।
कम से कम मेरे अनुभव में, इनमें से किसी के लिए प्रदर्शन में बहुत बड़ा अंतर होना असामान्य है - लेकिन या तो कुछ परिस्थितियों में शुद्धता को प्रभावित कर सकता है। विशेष रूप से, जब तक कोई रियलाइजेशन नहीं होता है, वेक्टर में पुनरावृत्तियों को वैध बने रहने की गारंटी दी जाती है, और एक बार जब आप आकार / आरक्षित स्थान सेट कर लेते हैं, तो आपको गारंटी दी जाती है कि जब तक आप डॉन नहीं बनेंगे t उससे आगे का आकार बढ़ाएँ।
std::vector
संदर्भ में इसके लिए एक कंस्ट्रक्टर और दो फ़ंक्शन हैं , जो आपके आवश्यकताओं को बेहतर बनाता है।