我们知道标准容器类模板deque和list可用于实现queue和+ vector来实现堆栈。但是,这两个实现之间有什么区别,如果我们总是使用相同的方法来访问,也不能使用at()或[]来访问任意元素,就像我们使用deque(vector)一样。
答案 0 :(得分:6)
容器适配器(例如stack
和queue
)是使用特定的操作子集实现的 - 任何将与特定适配器一起使用的容器都必须支持适配器所需的所有操作
vector
不能与queue
容器适配器一起使用,因为:
支持操作front(),back(),push_back()和pop_front()的任何序列都可用于实例化队列。
并且vector
不支持pop_front()
。
vector
,deque
或list
可与stack
一起使用,因为所有这三个容器都支持stack
所需的操作:
支持操作back(),push_back()和pop_back()的任何序列都可用于实例化堆栈。