寻找智能地图

时间:2013-05-08 05:28:01

标签: c++ map reference-counting

我有一张存储智能指针的全球地图。 其他类按键获取这些指针。

他们使用use键作为成员variabel:int USING_POINTER_KEY。

所以我可以在“getGlobalPointer”中定义:通过键'USING_POINTER_KEY'从地图获取指针。

有效!而且我有足够的理由以这种方式存储我的指针。没关系。

我的问题是:如何教我的全局地图自动删除类不再使用的条目?

我认为参考计数。但我不确定如何...

1 个答案:

答案 0 :(得分:0)

这种包罗万象的计划是一个危险信号。

但是,您可以使用智能指针(std::shared_ptr)创建自定义删除器。只需将函数指针作为第二个参数传递给shared_ptr构造函数。该函数可以从全局表中删除指针。

智能指针已经是引用计数的实现,因此您只想添加一个回调。