数组(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吧…