在C++中创建指针类型的STL队列

Tho*_*ove -2 c++ queue pointers stl

我似乎无法弄清楚为什么这不起作用.我试图建立一个指针类型的队列,但它失败了.我有一个教室,我想要排队指向Room ..所以我做了:

queue<*Room> bfsRooms;
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

`*'不能出现在常量表达式中

这是否意味着不可能创建指针的STL队列?

111*_*111 6

不,它应该没问题,你应该真正链接确切的代码和确切的错误,以便我们可以帮助你更好.

那说一个指针队列看起来像这样:

 Room r;
 std::queue<Room*> rooms;
 rooms.push(&r);
Run Code Online (Sandbox Code Playgroud)

编辑:值得注意的是,如果这些指针拥有他们的对象,他们指向你应该真正将指针封装在智能指针中,如:

std::queue<std::unique_ptr<Room>> rooms;
Run Code Online (Sandbox Code Playgroud)

这遵守RAII原则并将自动清理资源.