我有一个如下所示的shared_ptr向量。
现在假设我将多个shared_ptr推入向量中,每个元素现在的引用计数为1。
当我需要使用新的shared_ptr替换其中一个元素时,我希望旧的shared_ptr超出范围。常规元素赋值会实现这一点,还是只会复制shared_ptr内容?例如:
这会减少things.at(0)的引用计数并增加new_shared_ptr的计数吗?
std::vector<std::shared_ptr<SharedThing>> things;
现在假设我将多个shared_ptr推入向量中,每个元素现在的引用计数为1。
当我需要使用新的shared_ptr替换其中一个元素时,我希望旧的shared_ptr超出范围。常规元素赋值会实现这一点,还是只会复制shared_ptr内容?例如:
things.at(0) = new_shared_ptr;
这会减少things.at(0)的引用计数并增加new_shared_ptr的计数吗?