智能指针
shared_ptr,unique_tr,weak_ptr;
make_shared函数
最安全的使用内存的方式就是使用make_shared标准库函数。和智能指针一样,包含在memory头文件中。
#include<iostream>
#include<memory>
#include<vector>
using namespace std;
int main()
{
shared_ptr<int>p = make_shared<int>(12);
shared_ptr<string>s = make_shared<string>(10, '9');
cout << *p << endl;
cout << *s << ends;
return 0;
}
所有share_ptr都有一个关联的计数器,拷贝+1,销毁-1,一旦计数器为0,就会调用该的析构函数,并销毁内存空间。
使用new和delete直接管理内存
见C++ Primer Plus
可以为shared_ptr、unique_ptr定义删除器
删除器就是一个类类型的释放内存的函数。