关于c ++:std :: auto_ptr与std :: tr1 :: shared_ptr auto-ptrc++shared-ptrstd std::auto_ptr vs. std::tr1::shared_ptr 本问题已经有最佳答案,请猛点这里访问。 Possible Duplicate: Which kind of pointer do I use when? 我听说std::auto_ptr已经过时了,所以你必须使用std::tr1::shared_ptr。因为我读到的差异是std::tr1::shared_ptr有引用计数,而std::auto_ptr没有,所以复制或分配会使资源改变其所有者,而源将所有权赋予目标。这是唯一的区别吗? 与auto_ptr的单一所有权语义最匹配的智能指针是std::unique_ptr。如果可以的话,应该优先使用它。看这里。 相关讨论 没有std::smart_ptr。 @Fanael感谢你发现了这一点! 关于C++:我什么时候使用哪种指针? 关于C++:为什么"使用命名空间STD"被认为是不好的实践?