首页 > 技术文章 > STL源码剖析-容器-stack-queue

jakelin 2021-01-25 14:01 原文

stack

stack是一种先进后出(First In Last Out, FILO)的数据结构。只有一个出口。

SGI STL 默认是以deque作为缺省情况下的stack底层结构。也可以 list 作为 stack 的底层容器。

STL stack 往往不被归类为 container(容器),而被归类为 container adapter

stack所有的元素都必须符合“先进后出”的条件,只有从stack顶端对其进行新增、移除、读取操作,即stack不允许遍历行为,stack不提供迭代器

stack.jpg

stack基本操作:

push():顶部入栈

pop():顶部出栈

top()::指向栈顶

empty():判断栈空

queue

queue是一种先进先出(First In First Out, FIFO)的数据结构。有两个出口,从最底端加入元素、最顶端取出元素。

SGI STL 默认是以 deque 作为缺省情况下的 queue 底部结构。也可以 list 作为 stack 的底层容器。

STL queue往往不被归类为 container(容器),而被归类为 container adapter

stack所有的元素都必须符合“先进先出”的条件,只有从queue尾端增加元素、头端取出元素。queue不允许遍历行为,queue不提供迭代器

queue.jpg

queue基本操作:

push():尾端入队

pop():首端出队

front():返回队首

back():返回队尾

推荐阅读