struct Review {......};//一个结构
vector<Review>temp;//一个结构矢量
while(........)
temp.push_back(......);//这个不是重点
vector<shared_ptr<Review>>ps;//创建一个智能指针矢量
然后怎么用temp初始化这个指针矢量?即让每个指针矢量都指向一个相应的内存块,这个内存块保存相应的temp里的值(*ps[0]=temp[0]这样)
.
我试过这样:
for(int i=0;i<temp.size();i++)
ps.push_back(shared_ptr<Review>(new Review(temp[i])));
然后出现:
error C2678: 二进制“-”: 没有找到接受“std::shared_ptr”类型的左操作数的运算符(或没有可接受的转换)
.
还有这样
vector<shared_ptr<Review>>ps(temp_vec.size());
for (int i = 0; i < temp.size(); i++)
ps[i] = make(temp[i]);
shared_ptr<Review> make(Review r)//一个返回shared_ptr的函数
{
return shared_ptr<Review>(new Review(r));
}
也是同样的错误 怎么回事?
用make_shared