在我的项目中,我使用std :: queue类。我想知道如果我做以下事情会发生什么。
我的指针是否仍然指向我在开头指定的同一个元素?它是由队列规范定义的吗?
答案 0 :(得分:1)
只需使用std :: deque。 std :: queue旨在防止用户做任何非队列的事情,如。
答案 1 :(得分:1)
std::queue
使用序列容器来实现它。默认情况下,使用std::deque
。使用std::deque
,只要所有插入和删除都位于容器的开头或结尾,容器中元素的引用和指针就不会失效。
但是,我不知道你将如何获得指向队列中元素的指针;它没有为此提供功能(您只能获得对队列中第一个和最后一个元素的引用)。