如何将std::shared_ptr用于double数组?此外,使用shared_ptr的优点/缺点是什么。
最佳答案
这取决于您的追求。如果您只需要一个可调整大小的 double 数组,请选择
std::vector<double>
例子:
std::vector<double> v;
v.push_back(23.0);
std::cout << v[0];
如果您对分享上述阵列的所有权很重要,请使用
std::shared_ptr<std::vector<double>>
例子:
std::shared_ptr<std::vector<double>> v1(new std::vector<double>);
v1->push_back(23.0);
std::shared_ptr<std::vector<double>> v2 = v1;
v2->push_back(9.0);
std::cout << (*v1)[1];
另外,Boost有
boost::shared_array
这具有类似的目的。看这里:
http://www.boost.org/libs/smart_ptr/shared_array.htm
至于shared_ptr的一些优点/缺点:
优点
缺点
关于c++ - std::shared_ptr的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9876279/