boost shared_ptr 获取所有者计数

发布于 2024-12-05 14:29:15 字数 146 浏览 0 评论 0原文

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

I'm using boost::shared_ptr to store a pointer to texture. I'm loading new textures as i need and share them among the program using shared_ptr. If my app is using too much memory i want to remove unused textures to clear memory. Is there a way I can determine how many objects are having access to the texture via shared_ptr ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

油饼 2024-12-12 14:29:15

如果未使用,则 shared_ptr 将自动释放它。这就是shared_ptr 的要点。如果您将 shared_ptr 保存到纹理而不实际使用它,那么您就违反了 shared_ptr 的约定,并且不应该使用它。

If it's unused then the shared_ptr will free it automatically. That's the point of shared_ptr. If you are holding a shared_ptr to a texture without actually using it, then you're violating the contract of shared_ptr and should not be using it.

乖乖 2024-12-12 14:29:15

您可以使用 shared_ptr::use_count()< /code>,但在这样做之前请阅读文档!

You can use shared_ptr::use_count(), but read the documentation before doing so!

尐偏执 2024-12-12 14:29:15

There is use_count(), however note that as the documentation says, it's not necessarily too efficient.

若沐 2024-12-12 14:29:15

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

不过,这些信息对您有何用处则是另一个问题。

The shared_ptr class has member functions use_count() and unique() to give you access to its usage count.

It's a different question how that information will be useful to you, though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文