C++初阶 Stack和Queue的介绍和使用

简介: C++初阶 Stack和Queue的介绍和使用

本章目标


1 复习下栈这种数据结构特点

2 知道怎么使用STL中的栈

3 复习下队列这种数据结构的特点

4 知道怎么使用STL中的队列


Stack 栈


栈的特点


栈是一个先进先出的数据结构 它的数据从头部插入 从头部删除


一般来说栈是使用顺序表来实现的


44ee3802bd2640fab4c3bc8d67052291.png


如果说你对于栈这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新


的这篇博客


初阶数据结构栈


STL中的stack


定义


在STL中有两种使用方式


直接指定类型使用

像这样子

stack<int> st1;


指定适配器实现栈

像这样子

stack<int, vector<int>> st2;
  stack<int, list<int>> st3;


这里的适配器是什么意思呢?


实际上就是指定了我们在底层使用哪种方式实现栈


比如说


stack<int, vector<int>> st2;


这就是指定了我们在底层使用vector实现stack


使用

922eed1ec848449b8b16b192e65e0c62.png


这里的这些在经历了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;
}

3f025faedc504ec5b51175b22b963aa0.png


队列 Queue


队列的特点


队列是一种经典的尾插头出的数据结构 类似下图

dd49948e0d884f1a80bf8ba08c3fd1c7.png


如果说你对于队列这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新


的这篇博客


初阶数据结构队列


STL中的queue


定义


定义方式和栈一眼 同样有两种


方式一:


queue<int> q1;


方式二:


指定适配器定义


代码表示如下


queue<int,vector<int>> q2;
  queue<int,list<int>> q3;

使用

206d72b883ce4eafaac815e4e9c64f93.png


还是一眼 我们使用一段代码来实现上面大部分重要的内容


代码和演示效果图如下


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;
}

2954076be29847508c50b19d83cff76f.png


总结


stack和queue是两种容器适配器 大体与我们之前学的数据结构类似


本篇博客介绍了STL库中stack和queue怎么使用

其实学到这里了 这些使用方式应该一眼就能看明白了 不过为了博客整体的工整萌新还是写下了这篇文章

如果这篇文章帮助到了你 别忘记一键三连啊

阿尼亚 哇酷哇酷!

相关文章
|
21天前
|
存储 算法 调度
【C++打怪之路Lv11】-- stack、queue和优先级队列
【C++打怪之路Lv11】-- stack、queue和优先级队列
25 1
|
26天前
|
设计模式 存储 C++
C++之stack 和 queue(下)
C++之stack 和 queue(下)
29 1
|
1月前
|
存储 算法 C语言
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(一)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
26天前
|
C++ 容器
C++之stack 和 queue(上)
C++之stack 和 queue(上)
50 0
|
1月前
|
存储 C++ 容器
C++番外篇——stack、queue的实现及deque的介绍
C++番外篇——stack、queue的实现及deque的介绍
23 0
|
1月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
38 0
|
1月前
|
C++
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(三)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
1月前
|
编译器 程序员 C++
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(二)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
21天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
21 4
|
21天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
19 4