मैं थोड़ी देर के लिए सी # का उपयोग कर रहा हूं, और सी ++ पर वापस जाने का सिरदर्द है। मैं अपने कुछ अभ्यासों को सी # से सी ++ में लाने की कोशिश कर रहा हूं, लेकिन मुझे कुछ प्रतिरोध मिल रहा है और मुझे आपकी मदद स्वीकार करने में खुशी होगी।मैं कंटेनर का पर्दाफाश किए बिना इटरेटर का पर्दाफाश कैसे कर सकता हूं?
मैं इस तरह एक वर्ग के लिए एक इटरेटर बेनकाब करने के लिए करना चाहते हैं:
template <class T>
class MyContainer
{
public:
// Here is the problem:
// typedef for MyIterator without exposing std::vector publicly?
MyIterator Begin() { return mHiddenContainerImpl.begin(); }
MyIterator End() { return mHiddenContainerImpl.end(); }
private:
std::vector<T> mHiddenContainerImpl;
};
मैं कुछ है कि एक समस्या नहीं है पर कोशिश कर रहा हूँ? क्या मुझे सिर्फ typedef std :: vector < टी> :: इटरेटर चाहिए? मैं सिर्फ इटरेटर, नहीं लागू करने कंटेनर पर निर्भर करता है पर उम्मीद कर रहा हूँ ...
इसके अलावा इस [सवाल] को देखने के (http://stackoverflow.com/questions/127009/returning-an-any-kind-of-input-iterator-instead-of-a-vectoriterator-or-a -listit) –