deque和STL队列(OR堆栈)的链表(+ vector)实现之间有什么区别?

Bei*_*yev 2 c++ queue implementation stack stl

我们知道标准容器类模板deque和list可用于实现queue和+ vector来实现堆栈.但是,这两个实现之间有什么区别,如果我们总是使用相同的方法来访问,也不能使用at()或[]来访问任意元素,就像我们使用deque(vector)一样.

Mic*_*urr 6

容器适配器(例如stack和)queue使用特定的操作子集实现 - 将与特定适配器一起使用的任何容器都必须支持适配器所需的所有操作.

vector不能与queue容器适配器一起使用,因为:

支持操作front(),back(),push_back()和pop_front()的任何序列都可用于实例化队列.

而且vector不支持pop_front().

vector,deque或者list可以使用,stack因为所有这三个容器都支持以下操作stack:

支持操作back(),push_back()和pop_back()的任何序列都可用于实例化堆栈.