这应该很简单,但我似乎找不到它(除非没有这样的类!)
有哪些STL类可以用作智能指针?
更新
谢谢回复,
我必须说我很惊讶竟然没有标准实现。
我最终使用了这个:http://archive.gamedev.net/reference/articles/article1060.asp
这应该很简单,但我似乎找不到它(除非没有这样的类!)
有哪些STL类可以用作智能指针?
更新
谢谢回复,
我必须说我很惊讶竟然没有标准实现。
我最终使用了这个:http://archive.gamedev.net/reference/articles/article1060.asp
除了已提到的TR1 shared_ptr之外,STL中没有引用计数指针。
我建议您使用boost::shared_ptr(下载boost就足够了,无需编译,其实现仅为头文件)。
您还可以查看Loki库中的智能指针(同样是仅有头文件实现)。
有关可用智能指针的概述,请参见这里。
如果你不想/无法使用Boost,且你的编译器实现了TR1,你可以使用shared_ptr
(从Boost中借用):
#include <tr1/memory>
...
std::tr1::shared_ptr<Foo> ptr(new Foo);
std::auto_ptr
之外,没有智能指针。在C++11中,时间不停推进:
std::shared_ptr
std::weak_ptr
etc.
在STL PLUS中已经实现了一种替代方案,可以在source forge上查看。
"STLplus最初旨在通过提供缺失的容器数据结构(如智能指针、矩阵、树和图形)来扩展STL库。"