首页 > 解决方案 > 如果使用向量作为容器,如何弹出队列

问题描述

我正在学习 STL 中的队列,然后想尝试其他可用于实现队列的容器。

所以我使用矢量作为容器,但在 MSVS 中用于弹出功能

queue<int, vector<int>> q;
q.push(1); 
q.push(2);
q.pop();
cout << q.front() << " ";

我收到错误 C2039 'pop_front' 不是 'std::vector> 的成员

C2056 非法表达式(它指向队列头文件中的弹出函数)

那么当我们更改容器时,还有其他方法可以弹出元素吗?

标签: c++

解决方案


您不能std::vector用作std::queue. 唯一可接受的标准容器是std::dequestd::list。(PS:您可以创建自己的容器来满足这些要求。)

参考: http ://www.cplusplus.com/reference/queue/queue/

底层容器应至少支持以下操作:

  • empty
  • size
  • front
  • back
  • push_back
  • pop_front

推荐阅读