एक class C
की कल्पना करें जिसमें सदस्य m_MyList
प्रकार std::vector
है जिसमें मैं MyClass
प्रकार की वस्तुओं को संग्रहीत करना चाहता हूं। C
में दो फ़ंक्शन हैं जो m_MyList
में ऑब्जेक्ट्स को जोड़ या निकालते हैं। m_MyList
को C
के उपभोक्ताओं के लिए भी सुलभ बनाया जाना चाहिए क्योंकि उन्हें MyClass
ऑब्जेक्ट्स के संग्रह को पढ़ने की आवश्यकता है। संग्रह के बाहरी पाठक के पास संग्रह को बदलने का कोई साधन नहीं होगा, इस प्रकार MyClass
ऑब्जेक्ट्स केवल C
के स्वामित्व में हैं।क्या मुझे अपनी कक्षा में std :: vector सदस्य चर में std :: unique_ptr <T> का उपयोग करना चाहिए?
अब मेरा प्रश्न: सी ++ 11 शैली में, वेक्टर में स्टोर करने के लिए सबसे अच्छा टी क्या है?
std::vector<MyClass>
std::vector<MyClass*>
std::vector<unique_ptr<MyClass>>
,std:move
का उपयोग करvector
'unique_ptr' समाधान वास्तव में आपको कुछ भी नहीं खरीदता है, जब तक ऑब्जेक्ट नॉनपीपीबल हो। कच्चा सूचक संस्करण कमजोर हानिकारक है। बस सरल समाधान – jalf
के लिए जाएं ऑब्जेक्ट का कितना बड़ा 'MyClass' है और आप कितने स्टोर करने की योजना बना रहे हैं? क्या बहुत सारे प्रविष्टियां होंगी? – RedX