我对std :: vector的结构有疑问
如果有一些称为foo的类。
我将写下一些代码进行解释。
class foo
{
//do something...
};
void main(void)
{
foo a;
std::vector<std::shared_ptr<foo>> foo_list;
//Is it right? If not how can I do that?
foo_list.push_back(a);
}
像这个例子一样,如果智能指针在矢量中,如何将原始类放在矢量中?
答案 0 :(得分:3)
foo_list
是std::shared_ptr<foo>
(是指向foo
对象的共享指针)的集合。
foo_list.push_back(a)
试图向foo
中添加foo_list
实例-显然,这是行不通的,因为类型不同(一个是共享指针,另一个不是共享指针)< / p>
您需要以下内容:
auto a = std::make_shared<foo>();
foo_list.push_back(a);