shared_array类似shared_ptr,它包装了new[] 操作符在堆上分配的动态数组,同样使用引用计数机制为
动态数组提供了一个代理,可以在程序的生命周期里长期存在,直到没有任何引用后才释放内存。
#include <boost/smart_ptr.hpp>
using namespace boost;
int main()
{
int * p=new int[100];
shared_array<int> sa[p];
shared_array<int> sa2=sa;
sa[0]=10;
assert(sa2[0]==10);
}
shared_array能力有限,多数情况下他可以用shared_ptr<std::vector>或者std::vector<shared_ptr>
来代替,这两个方案具有更好的安全性和更多的灵活性,而所付出的代价几乎可以忽略不计.