本章目标
1 复习下栈这种数据结构特点
2 知道怎么使用STL中的栈
3 复习下队列这种数据结构的特点
4 知道怎么使用STL中的队列
Stack 栈
栈的特点
栈是一个先进先出的数据结构 它的数据从头部插入 从头部删除
一般来说栈是使用顺序表来实现的
如果说你对于栈这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新
的这篇博客
初阶数据结构栈
STL中的stack
定义
在STL中有两种使用方式
直接指定类型使用
像这样子
stack<int> st1;
指定适配器实现栈
像这样子
stack<int, vector<int>> st2; stack<int, list<int>> st3;
这里的适配器是什么意思呢?
实际上就是指定了我们在底层使用哪种方式实现栈
比如说
stack<int, vector<int>> st2;
这就是指定了我们在底层使用vector实现stack
使用
这里的这些在经历了string vector list之后是不是就轻车熟路了啊
所以下面我们直接用一段遍历将上面重要的函数全部用一边就可以
代码和显示效果如下
int main() { stack<int> st1; //stack<int, vector<int>> st2; //stack<int, list<int>> st3; st1.push(1); st1.push(2); st1.push(3); st1.push(4); st1.push(5); while (!st1.empty()) { cout << st1.top() << " "; st1.pop(); } cout << endl; return 0; }
队列 Queue
队列的特点
队列是一种经典的尾插头出的数据结构 类似下图
如果说你对于队列这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新
的这篇博客
初阶数据结构队列
STL中的queue
定义
定义方式和栈一眼 同样有两种
方式一:
queue<int> q1;
方式二:
指定适配器定义
代码表示如下
queue<int,vector<int>> q2; queue<int,list<int>> q3;
使用
还是一眼 我们使用一段代码来实现上面大部分重要的内容
代码和演示效果图如下
int main() { queue<int> q1; queue<int,vector<int>> q2; queue<int,list<int>> q3; q1.push(1); q1.push(2); q1.push(3); q1.push(4); q1.push(5); while (!q1.empty()) { cout << q1.front() << " "; q1.pop(); } return 0; }
总结
stack和queue是两种容器适配器 大体与我们之前学的数据结构类似
本篇博客介绍了STL库中stack和queue怎么使用
其实学到这里了 这些使用方式应该一眼就能看明白了 不过为了博客整体的工整萌新还是写下了这篇文章
如果这篇文章帮助到了你 别忘记一键三连啊
阿尼亚 哇酷哇酷!