stack是一种先进后出(FILO,First In Last Out)的数据结构,它只有一个出口,只允许在最顶端操作,不允许遍历。
从上图可以看出,stack和deque很像,只是封住了头部的开口,所以stack用deque来实现会比较简单,实际上SGI STL的stack就是使用deque来实现的。这种“修改某物接口,形成另一种风貌”,一般成为adapter(配接器),所以stack在STL里面一般不归类为container,而是归类为container adapter。比如用list也可以实现stack。
stack的特性决定了,不提供随机访问特性,也不提供迭代器。
queue是一种先进先出(FIFO,First In First Out)的数据结构
queue和stack类似,也是一种配接器,底层默认情况下也是deque来实现的。不提供随机访问特性,也不提供迭代器