无涯教程-C++ Queue(队列)

45 阅读2分钟

在计算机科学领域,我们致力于各种程序。他们每个人都有自己的域和实用程序。根据程序创建的目的和环境,我们有大量数据结构可供选择。其中之一就是"队列"。在讨论这种数据类型之前,让我们看一下它的语法。

Queue - 语法

template<class T, class Container = deque<T> > class queue;

此数据结构适用于FIFO技术,其中FIFO代表先进先出。首先插入的元素将首先被提取,依此类推。有一个称为"前"的元素,它是位于最前位置或说是第一个位置的元素,还有一个名为"后"的元素,它是位于最后位置的元素。在普通队列中,元素的插入在后端,而删除则从前端开始。

应用程序区域中的队列隐含为集合适配器。

集合应支持以下操作列表:

  • empty
  • size
  • push_back
  • pop_front
  • front
  • back

Queue - 模板参数

T                    -  该参数指定集合适配器将保留的元素的类型。

Container  - 该参数指定用于保存队列元素的集合内部对象。

Queue - 成员类型

下面给出了队列成员类型的列表,并对其进行了简短描述。

会员类型 Description
value_type 指定了元素类型。
container_type 指定了基础集合类型。
size_type 它指定元素的大小参数。
reference 它是集合的引用类型。
const_reference 它是常量集合的引用类型。

Queue - 函数列表

借助函数,可以在编程领域中使用对象或变量。队列提供了大量可以在程序中使用或嵌入的函数。相同的列表如下:

函数 说明
(constructor) 该函数用于构造队列集合。
empty 该函数用于测试队列是否为空。如果队列为空,则该函数返回true,否则返回false。
size 该函数返回队列集合的大小,该大小是对队列中存储的元素数量的度量。
front 该函数用于访问队列的前部元素。该元素起着非常重要的作用,因为所有删除操作都是在最前面的元素上进行的。
back 该函数用于访问队列的后部元素。元素扮演一个角色成员函数将分配器用于队列。

示例:一个简单的程序,展示基本队列函数的使用。

#include <iostream>
#include <queue>
using namespace std;
void showsg(queue <int> sg)
{
	queue <int> ss = sg;
	while (!ss.empty())
	{
		cout << 	 << ss.front();
		ss.pop();
	}
	cout << 
;
}

int main() { queue <int> fquiz; fquiz.push(10); fquiz.push(20); fquiz.push(30);

cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"The queue fquiz is : "</span><span class="pun">;</span><span class="pln">
showsg</span><span class="pun">(</span><span class="pln">fquiz</span><span class="pun">);</span><span class="pln">

cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"\nfquiz.size() : "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> fquiz</span><span class="pun">.</span><span class="pln">size</span><span class="pun">();</span><span class="pln">
cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"\nfquiz.front() : "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> fquiz</span><span class="pun">.</span><span class="pln">front</span><span class="pun">();</span><span class="pln">
cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"\nfquiz.back() : "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> fquiz</span><span class="pun">.</span><span class="pln">back</span><span class="pun">();</span><span class="pln">

cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"\nfquiz.pop() : "</span><span class="pun">;</span><span class="pln">
fquiz</span><span class="pun">.</span><span class="pln">pop</span><span class="pun">();</span><span class="pln">
showsg</span><span class="pun">(</span><span class="pln">fquiz</span><span class="pun">);</span><span class="pln">

</span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">

}

输出:

The queue fquiz is : 	10	20	30

fquiz.size() : 3 fquiz.front() : 10 fquiz.back() : 30 fquiz.pop() : 20 30

参考链接

www.learnfk.com/c++/cpp-que…