Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 自动指针和分配器_C++ - Fatal编程技术网

C++ 自动指针和分配器

C++ 自动指针和分配器,c++,C++,在使用容器内部使用的分配器为对象分配内存块后,我不想每次都使用try/catch块来构造任何对象,而是希望使用从std::auto_ptr(我这里没有c++11)派生的类和重写析构函数,这样它就可以释放指向的内存,然后释放指针。这样做有什么缺点吗?如果您不介意使用boost和boost::shared\u ptr,您可以提供一个自定义的删除器。查看问题的前两个答案。即使您没有C++11,您也可能有共享的ptr和唯一的ptr(实际上是C++03)。如果不这样做,您仍然可以在boost中使用实现。@

在使用容器内部使用的分配器为对象分配内存块后,我不想每次都使用try/catch块来构造任何对象,而是希望使用从std::auto_ptr(我这里没有c++11)派生的类和重写析构函数,这样它就可以释放指向的内存,然后释放指针。这样做有什么缺点吗?

如果您不介意使用
boost
boost::shared\u ptr
,您可以提供一个自定义的
删除器。查看问题的前两个答案。

即使您没有C++11,您也可能有
共享的ptr
唯一的ptr
(实际上是C++03)。如果不这样做,您仍然可以在boost中使用实现。@PawelZubrycki我使用的分配器是一个模板参数,默认为经典的std::allocator