STL常用容器——stack容器的使用
1、stack容器介绍
stack容器简介
stack容器是堆栈容器,该容器具有先进后出的特性;
使用stack容器需要引入头文件#include <stack>
;
stack容器只允许在容器的栈顶进行插入或删除操作;
stack容器不允许有遍历行为,也不提供迭代器;
有元素入栈的操作称为:push;将元素出栈的操作称为:pop
栈的相关概念
栈顶(Top):栈允许进行插入和删除操作的一端;
栈底(Bottom):栈固定并且不允许进行插入和删除操作的一端;
空栈:不含有任何元素的空栈
2、stack容器常用接口
stack容器构造函数
构造函数一:stack stk:默认构造函数
代码实例:
stack <int> stkInt; //构造存放int的stack容器。
stack <float> stkFloat; //构造存放float的stack容器。
stack <string> stkString; //构造存放string的stack容器
构造函数二:stack(const stack &stk):拷贝构造函数
代码实例:
stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(3);
//拷贝构造函数
stack<int> stkIntB(stkIntA);
stack容器赋值操作
stack& operator = (const stack &stk):重载等号操作符
代码实例:
stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(3);
stack<int> stkIntC;
//赋值
stkIntC = stkIntA;
stack容器数据存取
push(elem):添加元素进栈,若栈未满则将elem加入栈顶;
pop():移除元素,若栈非空则弹出栈顶元素;
top():返回栈顶元素;
代码实例:
stack<int> stkInt;
stkInt.push(1);
stkInt.push(3);;
stkInt.push(5);
stkInt.pop();
int top = stkInt.top(); //top= 3
stack容器大小操作
empty():判断栈是否为空
size():返回栈的大小
代码实例:
stack<int> stkIntA;
stkIntA.push(1);
stkIntA.push(3);
stkIntA.push(5);
stkIntA.push(7);
stkIntA.push(9);
if (!stkIntA.empty())
{
int iSize = stkIntA.size(); //5
}