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

How to make a list of shared_ptr in C++?

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

(我说的是:

list<shared_ptr<MyObject>> MyList;

但这显然行不通)

此外 - 列表是可增长的容器吗?还是我必须在创建它时声明它的大小?

谢谢!

效果很好

#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。