मैं सी ++ में नया हूं, और दुर्भाग्य से मैं सी # (मेरी पूर्व भाषा) में सोचना बंद नहीं कर सकता। मैंने कुछ किताबें, मंच और सी ++ संदर्भ वेबसाइट पढ़ी, लेकिन मुझे अपने प्रश्न का उत्तर नहीं मिला, इसलिए मैंने सोचा कि मैं कुछ बदसूरत छोड़ने और लिखने से पहले यहां भी कोशिश कर सकता हूं।सी ++ प्रकार के सामान्य संग्रह को वापस करने का सही तरीका
ठीक है, हम शुरू कर सकते हैं। मेरे पास एक सार विधि है succesorsFunction और मैं इसे राज्य पर पॉइंटर्स का संग्रह वापस करना चाहता हूं। मैं कार्यान्वयनकर्ताओं को एक विशिष्ट कंटेनर पर मजबूर नहीं करना चाहता हूं; मैं उन्हें चुनने देता हूं (वेक्टर, सूची, आदि)।
तो यह इस तरह दिखता है:
class Problem
{
public:
virtual list<const State*>::iterator succesorsFunction(const State &state, list<const State*>::iterator result) const = 0;
};
समस्या यहाँ सूची में सबसे स्पष्ट इस्तेमाल होता है। सी ++ में आप इसे कैसे करते हैं?
मैं टेम्पलेट का उपयोग कर के बारे में सोचा है, लेकिन फिर मैं दो समस्याओं का सामना करना पड़ा: 1) ऐसा लगता है कि आप सार तरीकों के साथ यह नहीं कर सकते लगता है (या मैं गलत हूँ) 2) मैं कैसे टेम्पलेट बताऊँ यह संकेत को शामिल करना चाहिए? कहना?
Boost.Range के प्रकार- मिट पर्वतमाला यहाँ मदद मिल सकती है। – Xeo
क्या आप इस फ़ंक्शन पर विस्तार कर सकते हैं और यह वर्चुअल होने के लिए प्राप्त किया जाना चाहिए? वैकल्पिक दृष्टिकोण हो सकते हैं। –
तो आप 'IENumerable' के समान कुछ वापस करना चाहते हैं? –
svick