C++ STL 中的 Pairs 队列及示例

2025年3月17日 | 阅读 3 分钟

引言

在本文中,我们通过一个广泛的示例探讨了 C++ STL 中成对队列的概念。通过结合队列和对,我们可以有效地管理相关信息的集合,同时保护它们的顺序和关联。提供的代码示例展示了不同的任务,例如入队、出队、访问组件和处理队列。这种灵活的数据结构可以适应各种情况,其中维护数据元素集对于有效的编程至关重要。

什么是标准模板库?

在 C++ 编程中,标准模板库提供了各种数据结构和算法,用于高效编程。其中,队列和对是关键部分,经常在各种情况下使用。将它们组合起来可以形成成对队列,这在需要以先进先出 (FIFO) 方式处理组件同时保持相关键值对的情况下特别有用。在本文中,我们将深入探讨 C++ STL 中成对队列的概念,提供广泛的解释和示例以帮助理解。

理解成对队列

在深入研究代码示例之前,我们应该理解成对队列的概念。队列是一种遵循 FIFO 原则的数据结构,这意味着第一个嵌入的组件是第一个被消除的组件。另一方面,对是一个简单的容器,它将两个异构项作为单个元素保存。结合这两个概念,成对队列允许我们对成对组件进行入队和出队操作,每个对在队列中保持其顺序和完整性。

示例场景

假设我们有一个情况,需要处理由整数和字符对表示的任务。每对表示一个任务 ID(数字)及其对应的优先级(字符)。我们需要将这些任务入队,然后根据它们的优先级顺序出队和处理它们。

编码

输出

Queue of Pairs in C++ STL with Examples

代码解释

包含必要的头文件

  • 该代码包含三个标准 C++ 头文件:<iostream> 用于输入/输出任务,<queue> 用于使用队列容器,以及 <utility> 用于使用 std::pair 实用程序。

主函数

  • main() 函数作为程序的入口点。

队列初始化

  • 一个名为 studentQueue 的队列被定义为保存数字和浮点数对,分别表示学生 ID 和 GPA。它的类型是 std::queue<std::pair<int, float>>。

学生记录入队

  • 使用 push() 函数将三个学生记录入队到 studentQueue 中。每个记录都使用 std::make_pair() 创建一个学生 ID 和 GPA 对。

打印队列大小

  • 使用 studentQueue.size() 将队列的当前大小打印到控制台。

不进行出队操作访问元素

  • 访问并打印队列中第一个学生记录的 ID 和 GPA,而不将该记录出队。这是通过使用 studentQueue.front() 访问队列的第一个元素来实现的。

出队

  • 使用 studentQueue.pop() 将第一个学生记录从队列中出队。这将从队列的前面删除元素。

出队后打印队列大小

  • 打印出队操作后队列的大小到控制台,以展示大小的变化。

入队额外的学生记录

  • 在出队操作后,使用相同的 push() 方法将另外两个学生记录入队到 studentQueue 中。

处理和打印学生记录

  • 一个 while 循环遍历队列,直到它变空 (studentQueue.empty())。在循环内部,每个学生记录都使用 studentQueue.front() 从队列的前面检索,打印,然后使用 studentQueue.pop() 出队。
  • 程序通过返回 0 结束,表示成功执行。总的来说,此代码演示了如何在 C++ STL 中使用成对队列来高效地管理和处理相关数据集合。