Niedawno wprowadzono mnie do istnienia auto_ptr
i shared_ptr
i mam dość proste/naiwne pytanie.Wskaźniki vs auto_ptr vs shared_ptr
Próbuję zaimplementować strukturę danych i muszę wskazać dzieciom z numeru Node
, które (mogą mieć więcej niż 1 i jego numer) mogą ulec zmianie. Który jest najlepszym rozwiązaniem i dlaczego:
class Node
{
public:
// ...
Node *children;
private:
//...
}
class Node
{
public:
// ...
share_ptr<Node> children;
private:
//...
}
Nie jestem pewien, ale myślę auto_ptr
nie działa dla tablic. Nie jestem także pewien, czy powinienem używać podwójnych wskaźników. Dzięki za pomoc.
auto_ptr jest przestarzałe w C++ 11 i należy unikać, jeśli to możliwe w kodzie w starszej wersji C++, jak również. – Nikko
'auto_ptr' jest przestarzałe, ponieważ jest niepotrzebnie trudne w użyciu. Zamiast tego użyj 'unique_ptr', który jest w zasadzie taki sam jak' auto_ptr', tylko że działa poprawnie i obsługuje tablice. Jest dostępny od wersji C++ 11. – nwp
również zajrzyj na http://stackoverflow.com/questions/3987521/how-bad-is-to-use-void-pointer-in-stdvector-declaration – fizzbuzz