0

我似乎不太明白为什么这不起作用。我试图创建一个指针类型队列,但失败了。我有一个教室,我想制作一个指向房间的指针队列..所以我做了:

queue<*Room> bfsRooms;

这给了我错误:

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

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

4

1 回答 1

7

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

也就是说,指针队列看起来像这样:

 Room r;
 std::queue<Room*> rooms;
 rooms.push(&r);

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

std::queue<std::unique_ptr<Room>> rooms;

这遵守了RAII原则,会自动清理资源。

于 2012-11-07T22:42:24.667 回答