Ich wurde vor kurzem in die Existenz von auto_ptr
und shared_ptr
eingeführt und ich habe eine ziemlich einfache/naive Frage.Zeiger vs auto_ptr vs shared_ptr
Ich versuche, eine Datenstruktur zu implementieren, und ich muss auf die Kinder eines Node
zeigen, die (mehr als 1 und seine) Zahl ändern können. Welches ist die beste Alternative und warum:
class Node
{
public:
// ...
Node *children;
private:
//...
}
class Node
{
public:
// ...
share_ptr<Node> children;
private:
//...
}
Ich bin nicht sicher, aber ich denke, auto_ptr
nicht für Arrays funktioniert. Ich bin mir auch nicht sicher, ob ich Doppelzeiger benutzen soll. Danke für jede Hilfe.
auto_ptr ist veraltet in C++ 11 und sollte auch möglichst in Code in älteren C++ Version vermieden werden. – Nikko
'auto_ptr' ist veraltet, weil es unnötig schwierig ist, es richtig zu verwenden. Verwenden Sie stattdessen 'unique_ptr', was im Grunde genommen dasselbe wie' auto_ptr' ist, nur dass es korrekt funktioniert und auch Arrays unterstützt. Es ist seit C++ 11 verfügbar. – nwp
siehe auch http://stackoverflow.com/questions/3987521/how-bad-is-to-use-void-pointer-in-stdvector-declaration – fizzbuzz