队列简介
队列是一种设计用于在FIFO(先进先出)环境中运行的数据结构.在队列元素中从后面结束插入并从前面结束删除.
队列类是容器适配器.容器是保存相同类型数据的对象.可以从不同的序列容器创建队列.容器适配器不支持迭代器,因此我们不能将它们用于数据操作.但是它们分别支持 push()和 pop()成员函数进行数据插入和删除.
定义
以下是来自< queue>的std :: queuer的定义头文件
template> class queue;
参数
T : 包含的元素的类型.
T可以被任何其他数据类型替换,包括用户定义的类型.
容器 : 基础容器对象的类型.
成员类型
以下成员类型可用作参数或按成员函数返回类型.
Sr .No. | 会员类型 | 定义 |
---|---|---|
1 | value_type | T(模板的第一个参数) |
2 | container_type | 模板的第二个参数 |
3 | size_type | size_t |
4 | reference | value_type& |
5 | const_reference | const value_type& |
6 | 不同ence_type | ptrdiff_t |
来自< queue>
的函数
以下是< queue>中所有方法的列表标题.
构造函数
Sr.No. | 方法&说明 |
---|---|
1 | queue::queue 默认构造函数 构造一个零元素的空队列对象. |
2 | queue :: queue 初始化构造函数 构造一个队列对象,并通过 ctnr 的副本分配内部容器. |
3 | queue :: queue move constructor 使用move语义构造包含其他内容的队列. |
4 | queue::queue 复制缺点tructor 构造一个队列,其中包含现有队列中存在的每个元素的副本 other . |
析构函数
Sr.No. | Method&说明 |
---|---|
1 | queue:::queue 通过释放容器内存来销毁队列. |
成员函数
Sr.No. | 方法&说明 |
---|---|
1 | queue::back 返回对队列最后一个元素的引用. |
2 | queue :: \\ templates 在队列末尾构造并插入新元素. |
3 | queue :: empty 测试队列是否为空. |
4 | queue :: front 返回对队列的第一个元素. |
5 | queue :: operator = 复制版本 通过替换旧内容将新内容分配给队列. |
6 | queue :: operator = 移动版本 通过替换旧内容将新内容分配给队列. |
7 | queue::pop 删除队列的前面元素. |
8 | queue :: push copy version 在队列末尾插入新元素. |
9 | queue :: push move version 插入新的e在队列结束时释放. |
10 | queue :: size 返回队列中存在的元素总数. |
11 | queue :: swap 使用另一个队列的内容交换队列内容. |
非会员重载函数
Sr.No. | Method&说明 |
---|---|
1 | operator== 测试两个队列是否相等. |
2 | operator!= 测试两个队列是否相等. |
3 | operator< 测试第一个队列是否小于其他队列. |
4 | operator< = 测试第一个队列是否小于或等于其他与否. |
5 | operator> 测试第一个队列是否大于其他队列。 |
6 | operator> = 测试第一个队列是否大于或等于其他队列. |
7 | swap 交换两个队列的内容. |
简介priority_queue
优先级队列是保持优先级的队列数据结构.优先级队列类似于堆数据结构,其中元素可以按任何顺序插入,并且始终首先检索 max heap 元素.
定义
下面是来自< queue>的std :: priority_queue的定义头文件
template,class Compare = less < class priority_queue;
参数
T : 包含的元素的类型.
T可以被任何其他数据类型替换,包括用户定义的类型.
容器 : 基础容器对象的类型.
比较 : 用于对priority_queue进行排序的比较对象.
这可能是一个函数指针或函数对象,可以比较它的两个参数.
成员类型
以下成员类型可以用作参数或按成员函数返回类型.
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | value_type | T(模板的第一个参数) |
2 | container_type | 第二个参数模板 |
3 | size_type | size_t |
4 | reference | value_type& |
5 | const _reference | const value_type& |
6 | difference_type | ptrdiff_t |
< queue>
以下是< queue>中所有方法的列表标题.
构造函数
Sr.No. | 方法&说明 |
---|---|
1 | priority_queue::priority_queue 默认构造函数 构造一个零元素的空priority_queue. |
2 | priority_queue :: priority_queue initialize constructor 构造一个priority_queue对象,并通过 ctnr 的副本分配内部容器. |
3 | priority_queue :: priority_queue 范围构造函数 构造一个priority_queue,其中包含从头到尾范围内的任意数量的元素. |
4 | priority_queue :: priority_queue move constructor 使用move语义构造priority_queue和其他内容. |
5 | priority_queue::priority_queue 复制构造函数 构造一个priority_queue,其中包含现有priority_queue other中存在的每个元素的副本. |
析构函数
Sr.No. | Method&说明 |
---|---|
1 | priority_queue:::priority_queue 通过解除分配容器内存来销毁priority_queue. |
成员函数
Sr.No. | 方法&说明 |
---|---|
1 | priority_queue::emplace 在priority_queue中按排序顺序构造并插入新元素. |
2 | priority_queue :: empty 测试pritority_queue是否为空. |
3 | priority_queue :: operator = 复制版本 通过更换旧内容为priority_queue分配新内容. |
4 | priority_queue :: operator = 移动版 通过替换旧内容为priority_queue分配新内容. |
5 | priority_queue :: pop 删除前面的元素priority_queue. |
6 | priority_queue :: push copy version 按排序顺序插入新元素. |
7 | pityity_queue::push 移动版本 按排序顺序插入新元素. |
8 | priority_queue :: size 返回t中存在的元素总数他是priority_queue. |
9 | priority_queue :: swap 将priority_queue的内容与另一个priority_queue的内容进行交换. |
10 | priority_queue :: top 返回对priority_queue的第一个元素的引用 |
非会员重载函数
Sr.No. | Method&说明 |
---|---|
1 | wap 使用另一个priority_queue的内容交换priority_queue的内容. |