可能重复:
我什么时候使用哪种指针?
我读到那std::auto_ptr
已经过时了,所以你必须std::tr1::shared_ptr
改用。正如我所读到的不同之处在于std::tr1::shared_ptr
有引用计数,而std::auto_ptr
没有,因此复制或分配会使资源更改其所有者,而源将所有权授予目的地。这是唯一的区别吗?
可能重复:
我什么时候使用哪种指针?
我读到那std::auto_ptr
已经过时了,所以你必须std::tr1::shared_ptr
改用。正如我所读到的不同之处在于std::tr1::shared_ptr
有引用计数,而std::auto_ptr
没有,因此复制或分配会使资源更改其所有者,而源将所有权授予目的地。这是唯一的区别吗?
与单一所有权语义最接近的智能指针auto_ptr
是std::unique_ptr。std::shared_ptr
如果可用,应优先使用它。见这里。