黑马c++ STL部分 笔记(6) queue 容器

简介: 黑马c++ STL部分 笔记(6) queue 容器

queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口

队列容器允许从一端新增元素,从另一端移除元素

队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为

队列中进数据称为 — 入队 push

队列中出数据称为 — 出队 pop

97592bdc84f241fa8b79899dc34f2865.jpg

// queue常用接口
/*
构造函数:
queue<T> que; //queue采用模板类实现,queue对象的默认构造形式
queue(const queue &que); //拷贝构造函数
赋值操作:
queue& operator=(const queue &que); //重载等号操作符
数据存取:
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
大小操作:
empty(); //判断堆栈是否为空
size(); //返回栈的大小
*/
#include <bits/stdc++.h>
using namespace std;
class person
{
public:
  person(string name, int age)
  {
    this->name = name;
    this->age = age;
  }
  string name;
  int age;
};
void test01()
{
  queue<person> q;
  person p1("A", 10);
  person p2("B", 20);
  person p3("C", 30);
  person p4("D", 40);
  // 入队
  q.push(p1);
  q.push(p2);
  q.push(p3);
  q.push(p4);
  // 队列不为空,查看队头,查看队尾,出队
  cout << q.size() << endl; // 4
  while (!q.empty())
  {
    cout << q.front().name << " " << q.front().age << endl;
    cout << q.back().name << " " << q.back().age << endl;
    q.pop();
  }
  cout << q.size(); // 0
}
int main()
{
  test01();
}
/*
总结:
入队 — push
出队 — pop
返回队头元素 — front
返回队尾元素 — back
判断队是否为空 — empty
返回队列大小 — size
*/


相关文章
|
3天前
|
存储 算法 编译器
[C++] STL简介
[C++] STL简介
7 1
|
9天前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
23 2
|
10天前
|
C++ 容器
【C/C++笔记】迭代器
【C/C++笔记】迭代器
10 1
|
10天前
|
存储 安全 程序员
【C/C++笔记】迭代器范围
【C/C++笔记】迭代器范围
29 0
|
16天前
|
安全 编译器 容器
C++STL容器和智能指针
C++STL容器和智能指针
|
18天前
|
C++ 容器
【C++】stack与queue的使用以及模拟实现
【C++】stack与queue的使用以及模拟实现
|
18天前
|
算法 安全 Linux
|
2月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
60 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
2月前
|
设计模式 安全 数据管理
【c++】stack和queue模拟实现
【c++】stack和queue模拟实现
20 1
|
18天前
|
C++ 容器
C++中自定义结构体或类作为关联容器的键
C++中自定义结构体或类作为关联容器的键
25 0
下一篇
云函数