queue.h是什么文件

queue.h是什么文件,第1张

queue.h是LINUX/UNIX系统下面的一个标准头文件,用一系列的数据结构定义了一队列。包括singly-lined list, list, simple queue(Singly-linked Tail queue), tail queue, circle queue五种。

diskQueue 实现了 BackendQueue 接口,

diskQueue在New初始化的时候会取回之前持久化的元数据

其保存的元数据格式为 实例名称.diskqueue.meta.dat , 保存的数据为

以下是对应的方法 d.retrieveMetaData() 和 persistMetaData() 具体实现,前者在初始化取回之前保存的state, 后者在sync同步的保存当前的state

接下来就是diskqueue的核心所在,也就是ioLoop() 函数

ioLoop() 的实现是通过for 轮询, 加 select 多路复用监听多个通道, 具体如下

readOne 读取一条数据的具体实现:

writeOne() 写入一条数据的具体实现:

其他的一些函数如下:

下面是使用的例子

// 执行结果

queue

queue是STL中现成的队列容器,我们只需要了解他的相关函数及使用方法,即可很方便的帮助我们使用队列这个数据结构。

1.头文件:

#include <queue >

2.变量声明:

queue <数据类型 >变量名

例queue <int >a; 即声明了一个int型的队列a

同理,也可声明queue <string >bqueue <struct node >c;

3.相关函数:

(1)q.push(x) :即向队列q的队尾插入数据x

#include<queue>

queue<int>q

q.push(5)

cout <<q.front() <<endl

1

2

3

1

2

3

(2)q.front():此函数没有参数,是指返回队首的值(只返回此值,并不从队中删除)

queue<string>q

q.push("hello")

q.push("world")

cout <<q.front() <<endl

1

2

3

1

2

3

(3)q.pop():此函数没有参数,指删除队首元素

queue<double>q

q.push(5.3)

q.push(8)

cout <<q.front() <<'\n'

q.pop()

cout <<q.front() <<'\n'

1

2

3

4

5

6

1

2

3

4

5

6

(4)q.back():此函数没有参数,返回队尾元素的值

queue<double>q

q.push(5.3)

q.push(8)

cout <<q.back() <<endl

1

2

3

1

2

3

(5)q.empty():此函数没有参数,判断队列是否为空,若队空,则返回真(1)

queue<int>q

cout <<q.empty() <<endl

q.push("3")

cout <<q.empty() <<endl

1

2

3

1

2

3

(6)q.size():此函数没有参数,返回队列元素个数

queue<double>q

q.push(5.3)

q.push(8)

cout <<q.size() <<'\n'

1

2

3

4

1

2

3

4

二、priority_queue


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12064899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存