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怎么使用

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

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

阿尼亚 哇酷哇酷!

相关文章
|
4天前
|
设计模式 C++ 容器
c++中的Stack与Queue
c++中的Stack与Queue
|
26天前
|
C++ 容器
【c++丨STL】stack和queue的使用及模拟实现
本文介绍了STL中的两个重要容器适配器:栈(stack)和队列(queue)。容器适配器是在已有容器基础上添加新特性或功能的结构,如栈基于顺序表或链表限制操作实现。文章详细讲解了stack和queue的主要成员函数(empty、size、top/front/back、push/pop、swap),并提供了使用示例和模拟实现代码。通过这些内容,读者可以更好地理解这两种数据结构的工作原理及其实现方法。最后,作者鼓励读者点赞支持。 总结:本文深入浅出地讲解了STL中stack和queue的使用方法及其模拟实现,帮助读者掌握这两种容器适配器的特性和应用场景。
56 21
|
4月前
|
存储 算法 调度
【C++打怪之路Lv11】-- stack、queue和优先级队列
【C++打怪之路Lv11】-- stack、queue和优先级队列
62 1
|
4月前
|
设计模式 存储 C++
C++之stack 和 queue(下)
C++之stack 和 queue(下)
65 1
|
4月前
|
C++ 容器
C++之stack 和 queue(上)
C++之stack 和 queue(上)
103 0
|
4月前
|
存储 C++ 容器
C++番外篇——stack、queue的实现及deque的介绍
C++番外篇——stack、queue的实现及deque的介绍
41 0
|
4月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
64 0
|
4天前
|
编译器 C语言 C++
类和对象的简述(c++篇)
类和对象的简述(c++篇)
|
1天前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
1天前
|
安全 编译器 C语言
【C++篇】深度解析类与对象(中)
在上一篇博客中,我们学习了C++类与对象的基础内容。这一次,我们将深入探讨C++类的关键特性,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载、以及取地址运算符的重载。这些内容是理解面向对象编程的关键,也帮助我们更好地掌握C++内存管理的细节和编码的高级技巧。