stack容器的使用

stack容器

stack是堆栈容器,是一种“先进后出”的容器。stack是基于deque容器而实现的容器。

使用

#include<stack>//头文件

stack对象的默认构造
stack采用模板类实现, stack对象的默认构造形式:
stack stkT;

stack<int> stkint;
stack<float> stkfloat;
stack<string> stkstr;

也可以设置指针类型或者自定义的结构体类型。

出栈和入栈操作

stkint.push(1);//入栈整型1
stkint.pop();//出栈

stkInt.push(1);
stkInt.push(2);
stkInt.pop();   
stkInt.push(3);
//此时stkInt存放的元素是1, 3

stack数据存取

stkint.top();//返回最后一个入栈的元素

stack的大小

stkint.empty();//判断堆栈是否为空,若为空返回true
stack.size();//返回堆栈的大小

C++中stack
pop(), 返回void,
top(),返回栈顶的引用。
所以想要提取栈顶元素,直接用s.top()

stack没有现成的清空函数(clear),一半采用两种方法进行清空:
1.逐一弹出栈顶元素

stack<int> intstk;
while(!intstk.empty()) intstk.pop();

2.和空栈交换
swap相当于交换了intstk和一个空的临时堆栈的内容,然后临时堆栈再结束生命周期,但由于操作的是堆空间,其实还是一个一个释放空间。该方法的速度要比1快一些。

stack<int> intstk;
stack<int>().swap(intstk);

例题

  1. 有效的括号(力扣)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值