STL学习
二、Stack
2.1 介绍
栈作为数据结构中的一种,是STL实现的一个先进先出,后进后出的容器。
1 | //头文件添加 |
2.2 方法函数
代码 | 含义 |
---|---|
s.push(ele) | 元素ele入列,增加元素O(1) |
s.pop() | 移出栈顶元素O(1) |
s.top() | 取得栈顶元素(但是不删除)O(1) |
s.empty() | 检测栈内是否为空,空为真O(1) |
s.size() | 返回栈内元素个数O(1) |
2.3 栈遍历
2.3.1 栈遍历
栈只能对栈顶元素进行操作,如果想要进行遍历,只能将栈中元素一个个取出来存在数组中
1 | stack<int> st; |
2.3.2 数组模拟栈进行遍历
通过一个数组对栈进行模拟,一个存放下标的变量top模拟指向栈顶的指针。
一般来说单调栈和单调队列写法均可以使用额外变量tt或者hh来进行模拟
特点:比STL的stack速度更快,遍历元素方便
1 | int s[100]; // 栈 从左至右为栈底到栈顶 |