在我的项目中,我使用 std::queue 类。我想知道如果我执行以下操作会发生什么。
- 获取队列中元素的指针(注意:指针而非迭代器)。
- 我在队列中进行修改,如队列中的 push 和 pop(pop 不是前一个指针指向的元素)
我的指针是否仍然指向我在开始时指定的同一个元素?它是由队列规范定义的吗?
最佳答案
std::queue
使用一个序列容器来实现它。默认情况下,使用 std::deque
。使用 std::deque
,只要所有插入和删除都在容器的开头或结尾,指向容器中元素的引用和指针就不会失效。
但是,我不知道您将如何获得指向队列中元素的指针;它不为此提供功能(您只能获得对队列中第一个和最后一个元素的引用)。
关于c++ - 队列中的内存使用情况如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286901/