//OK, pointer to int 999 std::shared_ptr<int> sp(new int(999)); template< typename T > struct array_deleter { void operator ()( T const * p) { delete[] p; } }; // pointer to int array, // (1) provide array deleter std::shared_ptr<int> sp(new int[10], array_deleter<int>()); // (2) or lambda expression std::shared_ptr<int> sp(new int[10], [](int *p) { delete[] p; }); // (3) or use default_delete std::shared_ptr<int> sp(new int[10], std::default_delete<int[]>()); // (4) or we can use unique_ptr std::unique_ptr<int[]> up(new int[10]); // this will correctly call delete[]
5种创建指向数组的智能指针shared_ptr/unique_ptr的方法
最新推荐文章于 2024-06-13 23:46:46 发布