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

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

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

阿尼亚 哇酷哇酷!

相关文章
|
2月前
|
存储 算法 调度
【C++打怪之路Lv11】-- stack、queue和优先级队列
【C++打怪之路Lv11】-- stack、queue和优先级队列
39 1
|
2月前
|
设计模式 存储 C++
C++之stack 和 queue(下)
C++之stack 和 queue(下)
38 1
|
2月前
|
存储 算法 C语言
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(一)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
2月前
|
C++ 容器
C++之stack 和 queue(上)
C++之stack 和 queue(上)
62 0
|
2月前
|
存储 C++ 容器
C++番外篇——stack、queue的实现及deque的介绍
C++番外篇——stack、queue的实现及deque的介绍
25 0
|
2月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
45 0
|
2月前
|
C++
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(三)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
2月前
|
编译器 程序员 C++
【C++】C++ STL探索:Priority Queue与仿函数的深入解析(二)
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
|
19天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
29 2
|
25天前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
59 5