假设我有几个MyObject类型的对象,我希望有相应的shared_ptr指向它们中的每一个。 然后,我想把所有这些指针都放到一个列表中 - 我该怎么做?
(我正在谈论类似的事情:
list<shared_ptr<MyObject>> MyList;
但这显然不起作用)
此外 - 是一个可增长容器的列表?或者我是否必须在创建时声明其大小?
谢谢!
答案 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。