【发布时间】:2016-09-21 00:02:54
【问题描述】:
我有一个 shared_ptrs 的向量,如下所示。
std::vector<std::shared_ptr<SharedThing>> things;
现在假设我将一些 shared_ptrs 推送到向量上,现在每个元素的引用计数为 1。
当我需要用新的 shared_ptr 替换其中一个元素时,我希望旧的 shared_ptr 超出范围。常规元素分配会实现这一点还是只是复制 shared_ptr 内容。例如:
things.at(0) = new_shared_ptr;
这会减少 things.at(0) 的引用计数并增加 new_shared_ptr 的计数吗?
【问题讨论】:
-
是的,使用 s 调试器来证明这一点。
标签: c++ c++11 vector shared-ptr