c++ - 队列中的内存使用情况如何?

标签 c++ stl queue

在我的项目中,我使用 std::queue 类。我想知道如果我执行以下操作会发生什么。

  • 获取队列中元素的指针(注意:指针而非迭代器)。
  • 我在队列中进行修改,如队列中的 push 和 pop(pop 不是前一个指针指向的元素)

我的指针是否仍然指向我在开始时指定的同一个元素?它是由队列规范定义的吗?

最佳答案

std::queue 使用一个序列容器来实现它。默认情况下,使用 std::deque。使用 std::deque,只要所有插入和删除都在容器的开头或结尾,指向容器中元素的引用和指针就不会失效。

但是,我不知道您将如何获得指向队列中元素的指针;它不为此提供功能(您只能获得对队列中第一个和最后一个元素的引用)。

关于c++ - 队列中的内存使用情况如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286901/

相关文章:

c++ - 如何实现枚举类对象的二维 vector ?

c++ - 实现 C++17 兼容的 STL 容器?

c++ - c2955 错误 - 使用类模板需要参数列表

c++ - while(cin >> x),这里的 bool 值是多少?

c++ - 为什么我可以在通过 'auto' 的基于范围的 for 循环中使用 'std::pair' 而不是 'std::unordered_map' 对非常量的引用?

c++ - C++中的多线程队列销毁

c - 为什么队列和栈声明为指针?

python - Python3 中的线程和队列 : sentinel value in input_queue fails to break out of while loop

c++ - 如何声明通过引用传递多维数组的函数

c++ - 回文程序不能输入多个字符串