我宁愿在调用pop和push时记忆如何工作?
答案 0 :(得分:1)
该元素已删除并销毁。如果您拥有对先前包含的元素的引用(或指针),则该元素将变得悬而未决。
std::queue<int> bad {{1, 2, 3}};
const int &first = bad.front();
bad.pop();
// first is invalid at this point
基础容器可能会也可能不会将未使用的内存释放回操作系统。容器通常会保留先前分配的内存,以备快速使用。参见Why doesn't std::queue shrink its memory after popping elements?。