当前位置: 首页>前端>正文

msgctl 清空消息队列 queue清空队列

1. 队列基础

一种特殊的线性表,它只允许在表的前端(前)进行删除操作,而在表的后端(后)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

- 队尾(后) - 允许插入的一端

- 队头(前) - 允许删除的一端

队列特点:先进先出(FIFO)

 队列的结构

如下图所示:

线性表的操作主要包括:

1 清空队列

(2)判断是否为空

3)元素的个数

4)入队列

5出队

(6)取对头元素

2.循环队列

顺序循环队列结构模型

•存在问题

设数组长度为n,则:

-当前= 0,后部= M时,再有元素入队发生溢出- 真溢出 

- !当前= 0,后部= M时,再有元素入队发生溢出- 假溢出

•解决方案

-队首固定,每次出队剩余元素向下移动-浪费时间

-循环队列

»基本思想:队列把设想分类中翻译环形,让平方[0]接在平方[M-1]之后,若后方+ 1 ==n,则令后部= 0;

3.模型

结构模型

设队首,队尾指针前面和后面,前面指向头结点,后指向队尾

STL------queue

queue 模板类的定义在<queue>头文件中。
与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类
型,元素类型是必要的,容器类型是可选的,默认为deque 类型。
定义queue 对象的示例代码如下:
queue<int> q1;
queue<double> q2;

queue 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元...

queue 模板类的定义在<queue>头文件中。
与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类
型,元素类型是必要的,容器类型是可选的,默认为deque 类型。
定义queue 对象的示例代码如下:
queue<int> q1;
queue<double> q2;

queue 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()


https://www.xamrdz.com/web/2n31926587.html

相关文章: