मुझे हाल ही में auto_ptr
और shared_ptr
के अस्तित्व के साथ पेश किया गया था और मेरे पास एक बहुत ही सरल/निष्पक्ष प्रश्न है।प्वाइंटर्स बनाम auto_ptr बनाम shared_ptr
मैं डेटा संरचना को लागू करने का प्रयास करता हूं और मुझे Node
के बच्चों को इंगित करने की आवश्यकता है (जो 1 से अधिक हैं और इसकी संख्या) बदल सकती है। जो सबसे अच्छा विकल्प है और क्यों है:
class Node
{
public:
// ...
Node *children;
private:
//...
}
class Node
{
public:
// ...
share_ptr<Node> children;
private:
//...
}
मुझे यकीन है कि नहीं हूँ, लेकिन मुझे लगता है कि auto_ptr
सरणियों के लिए काम नहीं करता। मैं भी इस बारे में निश्चित नहीं हूं कि मुझे डबल पॉइंटर्स का उपयोग करना चाहिए या नहीं। किसी भी मदद के लिए धन्यवाद।
auto_ptr में हटाई गई है सी ++ 11 और पुराने सी ++ संस्करण में कोड में यदि संभव हो तो साथ ही बचा जाना चाहिए। – Nikko
'auto_ptr' को बहिष्कृत किया गया है क्योंकि यह अनावश्यक रूप से उपयोग करने के लिए अनावश्यक रूप से कठिन है। इसके बजाय 'unique_ptr' का उपयोग करें जो मूल रूप से' auto_ptr' जैसा ही है, बस यह सही ढंग से काम करता है और सरणी का भी समर्थन करता है। यह सी ++ 11 के बाद उपलब्ध है। – nwp
पर भी एक नजर डालें http://stackoverflow.com/questions/3987521/how-bad-is-to-use-void-pointer-in-stdvector-declaration – fizzbuzz