用于引用计数指针的STL类?

12
5个回答

14

除了已提到的TR1 shared_ptr之外,STL中没有引用计数指针。

我建议您使用boost::shared_ptr(下载boost就足够了,无需编译,其实现仅为头文件)。

您还可以查看Loki库中的智能指针(同样是仅有头文件实现)。

有关可用智能指针的概述,请参见这里


3
boost::shared_ptr 是 std::tr1::shared_ptr 的灵感来源,随后在 C++0x 中,std::tr1::shared_ptr 又成为了 std::shared_ptr。 - Howard Hinnant

9

如果你不想/无法使用Boost,且你的编译器实现了TR1,你可以使用shared_ptr(从Boost中借用):

#include <tr1/memory>

...

std::tr1::shared_ptr<Foo> ptr(new Foo);

否则,除了vanilla STL中的std::auto_ptr之外,没有智能指针。

3

在C++11中,时间不停推进:

std::shared_ptr
std::weak_ptr

etc.


1

1
CComPtr并不是引用计数的,而是底层对象本身。 - John Dibling

0

在STL PLUS中已经实现了一种替代方案,可以在source forge上查看。

"STLplus最初旨在通过提供缺失的容器数据结构(如智能指针、矩阵、树和图形)来扩展STL库。"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接