Mi è stato recentemente introdotto l'esistenza di auto_ptr
e shared_ptr
e ho una domanda piuttosto semplice/ingenua.Pointers vs auto_ptr vs shared_ptr
Cerco di implementare una struttura dati e ho bisogno di indicare i figli di un numero Node
che (sono più di 1 e il suo) numero può cambiare. Quale è la migliore alternativa e perché:
class Node
{
public:
// ...
Node *children;
private:
//...
}
class Node
{
public:
// ...
share_ptr<Node> children;
private:
//...
}
Non sono sicuro, ma penso che auto_ptr
non funziona per gli array. Non sono, inoltre, sicuro se dovrei usare i doppi puntatori. Grazie per qualsiasi aiuto.
auto_ptr è deprecato in C++ 11 e dovrebbe essere evitato, se possibile, in codice nella vecchia versione C++ pure. – Nikko
'auto_ptr' è deprecato perché è inutilmente difficile da usare correttamente. Usa 'unique_ptr' invece che è fondamentalmente lo stesso di 'auto_ptr', solo che funziona correttamente e supporta anche gli array. È disponibile dal C++ 11. – nwp
anche dare un'occhiata a http://stackoverflow.com/questions/3987521/how-bad-is-to-use-void-pointer-in-stdvector-declaration – fizzbuzz