简要总结四个智能指针

在c++标准库里主要有四个智能指针:

C++四种智能指针auto_ptr、unique_ptr、shared_ptr和weak_ptr。

其中auto_ptr是C++98标准化引入的;
scope_ptr、shared_ptr和weak_ptr是C++11标准化才引入的(当然,早在C++03的TR1中就已经可以使用了)。我们都知道,auto_ptr虽说简单,但使用起来却到处是坑,以至于大家都不提倡使用。
shared_ptr是引用计数的智能指针,被奉为裸指针的完美替身,因此被广泛使用。也可能正是这个原因,scope_ptr 和 weak_ptr似乎被大家遗忘了(或许还会以为它们纯属多余)。

上述言论引自网上
下面简单总结下这几个智能指针:

1.auto_ptr管理权转移
带有缺陷的设计 ----->c++98/03
在任何情况下都不要使用;

2.scoped_ptr(boost)
unique_ptr(c++11)
防拷贝--->简单粗暴设计--->功能不全。

3、shared_ptr(boost/c++11)
引用计数--->功能强大(支持拷贝、支持定制删除器)
缺陷---->循环引用(weak_ptr配合解决)。
--------------------- 
原文:https://blog.csdn.net/qq_34992845/article/details/68939527 

你可能感兴趣的:(c++,STL)