Tho*_*ove -2 c++ queue pointers stl
我似乎无法弄清楚为什么这不起作用.我试图建立一个指针类型的队列,但它失败了.我有一个教室,我想要排队指向Room ..所以我做了:
queue<*Room> bfsRooms;
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
`*'不能出现在常量表达式中
这是否意味着不可能创建指针的STL队列?
不,它应该没问题,你应该真正链接确切的代码和确切的错误,以便我们可以帮助你更好.
那说一个指针队列看起来像这样:
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原则并将自动清理资源.