vector在扩容时会先对自身存储的元素拷贝后释放原有内存,这个过程会改变指向它的shared_ptr的引用计数吗?
答案是不会的,无论这个vector怎么扩容,最终shared_ptr的引用计数都不会改变
#include <iostream>
#include <memory>
#include <vector>
using namespace std;
//函数f()返回一个shared_ptr<vector<int>>
auto f(vector<int> vec)->shared_ptr<vector<int>>
{
return make_shared<vector<int>>(vec);
}
//
int main()
{
//开始创建
int i;
vector<int> vec;
while (cin>>i)
{
vec