Comment utiliser std :: shared_ptr pour le tableau de double? En outre, quels sont les avantages / inconvénients de l’utilisation de shared_ptr.
Cela dépend de ce que vous recherchez. Si vous voulez juste un tableau redimensionnable de doubles, optez pour
std::vector
Exemple:
std::vector v; v.push_back(23.0); std::cout << v[0];
Si le partage de la propriété dudit réseau vous importe, utilisez par exemple
std::shared_ptr>
Exemple:
std::shared_ptr> v1(new std::vector); v1->push_back(23.0); std::shared_ptr> v2 = v1; v2->push_back(9.0); std::cout << (*v1)[1];
Alternativement, Boost a
boost::shared_array
qui sert un but similaire. Vois ici:
http://www.boost.org/libs/smart_ptr/shared_array.htm
En ce qui concerne quelques avantages / inconvénients de shared_ptr, allez:
Avantages
Les inconvénients
Vous pouvez également fournir un deleter de tableau:
template class ArrayDeleter { public: void operator () (T* d) const { delete [] d; } }; int main () { std::shared_ptr array (new double [256], ArrayDeleter ()); }