如何在C ++中创建shared_ptr列表?

时间:2015-11-26 22:05:21

标签: c++ list shared-ptr

假设我有几个MyObject类型的对象,我希望有相应的shared_ptr指向它们中的每一个。 然后,我想把所有这些指针都放到一个列表中 - 我该怎么做?

(我正在谈论类似的事情:

list<shared_ptr<MyObject>> MyList;

但这显然不起作用)

此外 - 是一个可增长容器的列表?或者我是否必须在创建时声明其大小?

谢谢!

1 个答案:

答案 0 :(得分:3)

它只是起作用

#include <iostream>
#include <list>
#include <memory>

struct MyClass{
  int a;
};

int main() {
    std::list<std::shared_ptr<MyClass>> myList;
    myList.push_back(std::make_shared<MyClass>());
    myList.push_back(std::make_shared<MyClass>(3));        
}

哦,如果你没有充分的理由(测量),请使用std :: vector。