C++ Queue2025年8月29日 | 阅读11分钟 在 C++ 中,队列表示基本数据结构,它们遵循先进先出 (FIFO) 的逻辑。C++ 的 标准模板库 (STL) 通过其现成的组件提供了一个队列类,可以提高队列操作的效率。 ![]() 队列是一种线性数据结构,它通过一种队列机制来处理元素,该机制在队尾插入元素,在队头移除元素。队列的工作方式类似于售票处排队,因为顾客根据他们到达的顺序获得服务。 队列在编程中发挥着至关重要的作用,因为开发人员需要它们来执行任务调度功能、模拟基于行的服务以及在树中执行层序遍历。 队列的操作C++ 中队列的几个操作如下:
语法它具有以下语法: 在这个语法中,
队列示例让我们通过一个例子来说明 C++ 中的队列。 示例编译并运行输出 The Front element of the Queue is: 25 The Rear element of the Queue is: 41 The Front element after pop: 37 说明 在此示例中,我们演示了使用 STL queue 容器的基本队列操作。它向队列中添加了三个整数,显示了队首和队尾元素,使用 pop() 移除了队首元素,然后显示了更新后的队首。之后,队列遵循 FIFO 原则。 队列的关键特征C++ 中队列的几个特征如下:
这些系统积极参与作业调度、管理客户服务运营以及提高数据缓冲效率。 C++ 中队列的声明和初始化队列元素通过 push() 函数来初始化,在声明后逐个插入元素。在 C++ 中,我们可以通过多种方式声明和初始化队列。 语法 它具有以下语法:
声明和初始化队列的示例让我们通过一个例子来说明如何在 C++ 中声明和初始化队列。 示例编译并运行输出 Front: 10 Back: 30 说明 在此示例中,我们演示了 STL queue 容器的用法。首先,我们声明一个整数队列并使用 push() 函数插入三个元素。之后,front() 函数检索第一个插入的元素,而 back() 检索最后一个添加的元素。 成员类型下面是队列成员类型列表及其简要描述。
函数通过函数,对象或变量可以在编程领域中发挥作用。队列提供了大量可用于或嵌入程序中的函数。以下是它们的列表:
执行基本队列功能的示例让我们看一个简单的程序,展示 C++ 中基本队列函数的使用。 示例编译并运行输出 The queue fquiz is : 10 20 30 fquiz.size() : 3 fquiz.front() : 10 fquiz.back() : 30 fquiz.pop() : 20 30 说明 在此示例中,我们演示了 queue 容器及其函数,如 push()、pop()、front()、back() 和 size() 的用法。首先,它定义了一个名为 showsg() 的辅助函数来显示队列元素。之后,程序将元素添加到队列中,显示它们,显示其大小、队首和队尾元素,然后使用 pop() 函数移除队首元素。 队列上的基本操作在 C++ 中,我们可以对队列执行 several 操作。其中一些如下: 1) 插入 (push())在 C++ 中,插入操作将新元素放置在队列系统当前最后一个条目之后。插入过程不会修改队列队首位置的元素。在队列中插入元素的过程也称为入队 (Enqueue)。可以按顺序将多个元素添加到队列中。 语法 它具有以下语法: C++ 插入队列元素的示例让我们看一个程序,演示如何将元素插入队列。 示例编译并运行输出 Queue after insertion: 10 <- 30 说明 在此示例中,push() 函数在队尾添加元素。队列:10 <- 20 <- 30 front() 显示第一个元素 (10),back() 显示最后一个元素 (30)。 2) 删除 (pop())队列的队首元素将是此操作要移除的第一个元素。它遵循 FIFO 规则。系统通过 pop() 函数通过每次操作处理并移除一个元素。 弹出元素不会提供被移除的值,因为它需要用户首先通过 front() 函数访问队首元素。从队列中移除元素的过程称为出队 (dequeuer)。 语法 它具有以下语法: 删除元素的示例让我们看一个程序,演示如何删除队列中的元素。 示例编译并运行输出 Before pop, front = 10 After pop, new front = 20 说明 在此示例中,pop() 函数移除队首(第一个)元素。移除 10 后,下一个元素 (20) 成为新的队首。 3) 访问队首元素 (front())此函数允许访问下一个将从队列中移除的队首元素。 语法 它具有以下语法: C++ 访问队首元素的示例让我们看一个程序,演示如何访问队列中的队首元素。 示例编译并运行输出 Front of the queue: Alice 说明 在此示例中,front() 函数显示第一个插入的元素。 4) 访问队尾元素 (back())该方法允许访问队列中最新添加元素的引用。 语法 它具有以下语法: 让我们看一个程序,演示如何访问队列中的队尾元素。 示例编译并运行输出 Back of the queue: Bob 说明 在此示例中,back() 函数显示最近插入的元素。 5) 检查大小 (size())该函数返回队列容器的大小,这是队列中存储的元素数量的度量。 语法 它具有以下语法: C++ 检查大小的示例让我们看一个程序,演示如何检查队列中元素的数量。 示例编译并运行输出 Queue size: 3 说明 在此示例中,size() 函数计算队列中存在的元素数量。 6) 检查队列是否为空 (empty())该函数用于测试队列是否为空。当队列不包含任何元素时,该函数才返回 true,而在所有其他情况下都返回 false。 语法 它具有以下语法: C++ 队列 empty() 函数的示例让我们看一个程序,演示如何检查队列中的元素是否为空。 示例编译并运行输出 Queue is empty Queue is not empty 说明 在此示例中,如果队列没有元素,empty() 函数将返回 true。 7) 遍历队列队列需要遍历过程来显示从第一个到最后一个的所有元素。我们通过使用循环以及 front() 和 pop() 函数来遍历和打印队列元素,因为 std::queue 不支持迭代器。 遍历后队列变空,因为所有元素都已被移除。通过将原始队列复制到一个不同的临时队列中,然后使用这个新队列进行遍历,我们可以保留原始队列。 C++ 遍历队列的示例让我们看一个程序,演示如何遍历队列中的元素。 示例编译并运行输出 Queue elements: 1 2 3 说明 在此示例中,我们每次都打印队首元素并执行 pop()。遍历结束后队列变空。 时间复杂度下表显示了 C++ 中队列的 several 操作的时间复杂度。
结论总而言之,C++ 中的队列作为基本数据结构,实现 FIFO 逻辑,按照到达顺序处理指令。通过 C++ 标准模板库 (STL) 的队列容器系统,开发人员可以高效地访问入队、出队和查看操作。 C++ 队列选择题1) C++ STL 中队列的最佳描述是什么?
答案:c) FIFO(先进先出)数据结构 2) 关于 STD::queue 的以下哪个陈述是正确的?
答案:d) 元素从队尾插入,从队首删除 3) std::queue 的 empty() 函数返回什么?
答案:d) 如果队列中没有元素,则返回 true 4) 以下关于 std::queue 的哪个陈述不正确?
答案:b) 它支持元素的随机访问 5) 以下哪个最能描述 std::queue 的内部结构?
答案:a) 一个容器适配器,它使用另一个容器,例如 Deque 或 List 下一主题C++ 中的优先队列 |
在 C++ 中,priority_queue 是 STL 中的一个派生容器,它只考虑优先级最高的元素。队列遵循 FIFO 原则,而 priority_queue 根据优先级弹出元素,即最高优先级的元素首先弹出。它类似于……
阅读 10 分钟
在 C++ 中,map 是 STL(标准模板库)的一部分。Map 是关联容器,它们存储排序的键值对,其中每个键都是唯一的,可以插入或删除,但不能修改。与键相关联的值可以更改。语法是……
阅读 13 分钟
C++ STL Set 在 C++ 中,set 代表基本数据结构,它以某种排序顺序排列唯一元素并存储它们。集合称为关联容器,唯一排序的元素称为排序键。我们可以插入或……
阅读9分钟
在 C++ 中,std::list 是一个序列容器,它允许元素的非连续存储。它实现为双向链表,其中每个元素包含前一个和后一个列表元素的地址。它允许我们将数据存储在……
阅读 15 分钟
在 C++ 中,stack 是一种线性数据结构,它遵循后进先出(LIFO)原则执行操作。这意味着最后添加的元素将首先被删除,而最后添加的元素最后被删除。在 C++ 中,STL 提供了一个……
阅读9分钟
函数 C++ 中,标准模板库 (STL) 在 <<algorithm> 头文件中提供了强大的底层函数集合。这些函数有助于对数组、向量、列表和其他容器等序列执行各种操作。算法函数是通用的,并且操作迭代器,...
阅读 24 分钟
在 C++ 中,bitset 是一个包含固定大小位序列(0 和 1)的容器。它使我们能够有效地管理和操作固定大小的位序列。它适用于低级操作、内存高效存储和位逻辑。它实现为……
11 分钟阅读
s 在 C++ 中,vector 是标准模板库(STL)的一部分。它们是动态数组,在添加或删除元素时可以自动调整大小。与具有固定大小的数组不同,vector 提供了广泛的灵活性和底层函数,这些函数……
11 分钟阅读
在 C++ 中,deque(双端队列)是一种队列,其中可以在队列的前端和后端添加和删除元素。它支持 FIFO 和 LIFO 操作,这比队列提供了更大的灵活性。在 C++ 中,STL deque 是一个序列容器,它……
11 分钟阅读
在 C++ 中,multimap 是 C++ STL(标准模板库)的一部分。Multimap 是像 map 一样的关联容器,它们存储排序的键值对,但与只存储唯一键的 map 不同,multimap 可以有重复的键。默认情况下,它使用 (<) 运算符进行比较……
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India