Stack
介绍
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中。
栈(Stack):只允许在一端进行插入或者删除的线性表。栈只支持在一端进行插入和删除操作。
- 栈顶(Top):线性表允许进行插入和删除的那一端
- 栈底(Bottom):固定的,不允许进行插入和删除的另一端
- 空栈:不含任何元素的空表
- 压栈(Push):数据的插入也叫压栈(压栈、进栈、入栈都是一个意思)
在 C++STL 容器中,为我们提供了 Stack 的接口函数,与 list、Vector、string 类似,直接实例化使用即可。
栈的实例化
栈的元素支持内置类型(int、char、double......)也支持自定义类型,这里以 int 类型为例:
// 实例化 stack<int> V;
遵循:stack<类型> 变量名
检测 stack 是否为空
如果是当前的栈为空返回非 0;不为空返回 0
V.empty()
获取栈元素个数
计算当前栈的元素个数,并返回
V.size();
获取栈顶元素
返回当前栈顶元素的引用
V.top();
压栈
将元素存进栈中
V.push(val);
出栈
弹出栈尾元素,注意没有返回值
V.pop();
queue
介绍
队列满足先进先出(First-In-First-Out,FIFO),它可以在一端插入另一端删除,新元素被插入到队列的末尾(也就是队尾),元素只能在队列的前端(队首)被删除。队列由三个结构组成:
- 队头:允许删除的一端,又称队首
- 队尾:允许插入的一端
- 队列长度:即队列中的元素数量
队列的实例化
遵循:queue<类型> 变量名
queue<int> V;
检测队列是否为空
队列为空返回 true;不为空返回 false
V.empty();
获取队列元素个数
V.size();
获取队头元素
队头就是尾端,出元素的那端,返回尾端元素的引用


