tr1::shared_ptr
和tr1::weak_ptr
像内置指针一样工作,但它们会跟踪有多少个tr1::shared_ptrs
指向一个对象。这被称为引用计数。它在预防非循环数据结构中的资源泄漏方面效果很好,但如果两个或更多的对象包含
tr1::shared_ptrs
,使得形成了一个循环,则即使所有指向该循环的外部指针已被销毁,循环仍可能保持彼此的引用计数不为零。这就是
tr1::weak_ptrs
的作用所在。我的问题是:循环数据结构如何使引用计数保持不为零?我请求一个C++程序示例。如何使用
weak_ptrs
来解决这个问题?(请再次给出示例)。