我正在STL中学习队列,然后考虑尝试其他可用于实现队列的容器。
所以我使用vector作为容器,但是在MSVS中使用pop函数
queue<int, vector<int>> q;
q.push(1);
q.push(2);
q.pop();
cout << q.front() << " ";
我遇到错误
C2039'pop_front'不是'std::vector>的成员
C2056非法表达式(它指向队列头文件中的pop函数)
那么当我们更换容器时还有其他方法可以弹出一个元素吗?
最佳答案
std::queue
要求基础容器为SequenceContainer,并提供
back()
front()
push_back()
pop_front()
成员函数。
std::vector
没有pop_front
,因为它是O(N)操作,因此您不能将其用作基础容器。您或者需要使用自己的具有这些功能的 vector 类,或者切换到使用具有这些功能的其他容器。
关于c++ - 如果使用 vector 作为容器,如何弹出队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61482205/