मेरे डिजाइन में मेरे पास एक कक्षा है जो अधिकतर std::vector<OtherClass>
के लिए एक मोर्चा है। क्या मुझे, मेरे क्लास इंटरफ़ेस में, किसी भी कॉलर को std::iterator
पर सौंपना चाहिए, पूरे vector
के संदर्भ पर हाथ रखें या मेरे vector
की सामग्री तक पहुंचने के लिए फ़ंक्शंस का एक सेट प्रदान करें? या पूरी तरह से इसे पूरी तरह से दृष्टिकोण?मेरी कक्षा ज्यादातर कंटेनर के लिए एक मोर्चा है, क्या मुझे इस तथ्य का पर्दाफाश करना चाहिए?
अधिक जानकारी: कंटेनर में तत्व प्रारंभ करने के दौरान स्थापित किए जाएंगे, और जब प्रोग्राम सामान्य रूप से चल रहा है तब जोड़ा नहीं जाएगा। मेरी कक्षा के ग्राहक अक्सर OtherClass
तत्वों की स्थिति को प्रश्न और संशोधित करेंगे, हालांकि समय-महत्वपूर्ण फैशन में नहीं।
रैपर वर्ग के सदस्यों के बजाय 'std :: vector' को स्वीकार करने वाले नि: शुल्क कार्यों का उपयोग करने पर विचार करें। – erenon
यह बहुत ही विशिष्ट अनुप्रयोग है। Iterators काम कर सकते हैं, लेकिन क्या होगा यदि आप लगातार वेक्टर में जोड़ रहे हैं? वेक्टर पुन: आवंटित होने पर इटरेटर्स को अमान्य कर दिया जाएगा। कृपया हमें और जानकारी दें, कृपया! – Conduit
यदि 'अन्य क्लास 'स्थिर है, तो विशेषज्ञता क्यों नहीं है? – Nelfeal