提升shared_ptr获取所有者数量

时间:2011-09-21 12:36:56

标签: c++ boost shared-ptr

我正在使用boost :: shared_ptr来存储指向纹理的指针。我正在加载我需要的新纹理,并使用shared_ptr在程序中共享它们。如果我的应用程序使用太多内存我想删除未使用的纹理以清除内存。有没有办法可以通过shared_ptr确定有多少对象可以访问纹理?

4 个答案:

答案 0 :(得分:6)

如果未使用,则shared_ptr会自动释放它。这就是shared_ptr的要点。如果您在没有实际使用纹理的情况下持有shared_ptr纹理,那么您违反了shared_ptr的合同,并且不应该使用它。

答案 1 :(得分:2)

您可以使用shared_ptr::use_count(),但请先阅读文档!

答案 2 :(得分:1)

use_count(),但请注意,正如文档所说,它不一定太有效。

答案 3 :(得分:1)

shared_ptr类具有成员函数use_count()unique(),可让您访问其使用计数。

但这个信息对你有用的问题却是一个不同的问题。