数组(Array) 与 智能指针

来源:互联网 发布:腾讯云mysql 外网连接 编辑:程序博客网 时间:2024/06/04 19:46

数组(Array) 与 智能指针

注意:需要c++11的支持

关于智能指针处理数组对象,并不是很常见,因为有可能需要自定义删除方法。


shared_ptr:

shared_ptr需要自定义删除方法,支持delete[]:

shared_ptr<int> ptr1(new int[10], [](int *ptr) {delete[] ptr; });

或者:

shared_ptr<int> ptr2 (new int[10], default_delete<int[]>());


unique_ptr:

unique_ptr直接支持数组操作:

unique_ptr<int[]> ptr3(new int[10]);

也可:

unique_ptr<int, void(*)(int*)> ptr4(new int[10], [](int *p) {delete[] p; });

或者:

unique_ptr<int[]> ptr5(new int[10], default_delete<int[]>());


智能指针操作二维数组:

还是去用boost库或者vector吧……

0 0
原创粉丝点击