【发布时间】:2015-08-15 13:51:30
【问题描述】:
为什么使用std::vector 容器创建std::queue 不会引发编译器错误?
仅在调用 pop 时发生编译器错误(这很清楚,因为 vector 不提供 pop_front())。
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
int main()
{
queue<int, vector<int>> s;
s.push(10);
cout << s.front() << endl;
s.pop();
return 0;
}
【问题讨论】:
-
什么是“非默认 std::vector”?
-
@KerrekSB: 意味着 std::vector 不是队列的默认容器(即 std::deque)。无论如何编辑了标题。是的,更清晰。
-
好吧,创作工作。
pop不起作用,因此您会在此处收到错误。 -
好电话。这似乎是一个实施质量问题。绝对可取。是否严格必要是我无法回答的问题,尽管在我看来,标准表明它可能是。