vector的类型是智能指针,该怎么循环往容器中放值?

```vector<shared_ptr<int>> v; 怎么循环往里放值呢,有代码可以参考下吗?往模板里放智能指针类型
c++

2个回答

最好有完整的代码
就你的代码来说,可以用 make_shared

    shared_ptr<vector<int>> pv = make_shared<vector<int>>();
    int i , x;
    for(i = 0; i < n; i++)
    {
        cin>>x;
        (*pv).push_back(x);
    }

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复buling?: 不好意思看反了问题,但是也是一样的,用make_shared包装int,然后放入vector
4 个月之前 回复
weixin_45724789
buling? 是容器里为智能指针类型的
4 个月之前 回复

v.push_back(ptr)
不管是什么类型的变量,添加元素都是push_back

int b = c = 25;
shared_ptr<int> pa = make_shared<int>(25);
shared_ptr<int> pb = make_shared<int>(b);
shared_ptr<int> pc = shared_ptr<int>(pb);

v.push_back(pa);
v.push_back(pb);
v.push_back(pc);
v.push_back(make_shared<int>(25));
JonathanYan
JonathanYan 回复buling?: 既然你都定义了类型是只能指针,直接添加原类型肯定是不对的,直接百度"shared_ptr"有很多相关的介绍,你可以看看
4 个月之前 回复
JonathanYan
JonathanYan 回复buling?: 回答
4 个月之前 回复
JonathanYan
JonathanYan 回复buling?: 改了会的,可以参考上面的写法
4 个月之前 回复
weixin_45724789
buling? v里的数据是智能指针类型,普通的Int型会报错
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问