c++ - 如果使用向量作为容器,如何弹出队列
问题描述
我正在学习 STL 中的队列,然后想尝试其他可用于实现队列的容器。
所以我使用矢量作为容器,但在 MSVS 中用于弹出功能
queue<int, vector<int>> q;
q.push(1);
q.push(2);
q.pop();
cout << q.front() << " ";
我收到错误 C2039 'pop_front' 不是 'std::vector> 的成员
C2056 非法表达式(它指向队列头文件中的弹出函数)
那么当我们更改容器时,还有其他方法可以弹出元素吗?
解决方案
您不能std::vector
用作std::queue
. 唯一可接受的标准容器是std::deque
和std::list
。(PS:您可以创建自己的容器来满足这些要求。)
参考: http ://www.cplusplus.com/reference/queue/queue/
底层容器应至少支持以下操作:
empty
size
front
back
push_back
pop_front
推荐阅读
- git - 当提交已经合并时,将提交重新设置到 master
- python - 在python中,如何在不同对象之间共享(引用)一个变量作为属性?
- node.js - 使用文本输入上传文件的最佳方式
- angular - 模板解析错误:不是已知元素
- sql - 在 Select 语句中使 Oracle 条件可选
- angular - 使用 GraphQL 和 React 比使用 GraphQL 和 Vue/Ember/Angular 有什么好处吗?
- javascript - 如何在本地地址和网址/备用地址之间切换锚链接?
- python - 类型错误:不可散列类型:'list'(使用字典)
- java - 从另一个类访问事件
- numpy - 计算大矩阵的前几个特征值