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

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

本文关键字:shared ptr 列表 创建 C++      更新时间:2023-10-16

让我们假设我有几个类型为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。