Moron/Aryabhatta 是正确的,但更多细节可能会有所帮助。
队列和堆栈是比双端队列、向量或列表更高级别的容器。我的意思是,您可以从较低级别的容器中构建队列或堆栈。
例如:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
将使用双端队列作为底层容器构建一个整数堆栈,并使用列表作为底层容器构建一个双精度队列。
你可以想到s
作为受限双端队列和q
作为限制名单。
所需要的只是较低级别容器实现较高级别容器所需的方法。这些都是back()
, push_back()
, and pop_back()
对于堆栈和front()
, back()
, push_back()
, and pop_front()
用于队列。
See stack http://en.cppreference.com/w/cpp/container/stack and queue http://en.cppreference.com/w/cpp/container/queue了解更多详情。
对于双端队列来说,它不仅仅是一个可以在两端插入的队列。特别是,它具有随机访问operator[]
。这使得它更像一个向量,但是一个可以在开头插入和删除的向量push_front()
and pop_front()
.
See deque http://en.cppreference.com/w/cpp/container/deque详细信息。