优先队列(priority

您所在的位置:网站首页 队列的操作特性是什么 优先队列(priority

优先队列(priority

2024-07-08 21:42| 来源: 网络整理| 查看: 265

文章目录 priority_queue一.优先队列简介二.优先队列特性和操作1.头文件&定义2.默认优先输出大数据(1).举例3.优先输出小数据 即小顶堆(1).举例4.自定义优先级 重载默认的 < 符号(1).使用 funtion .(2). 自定义数据类型 三.基本函数实现1.构造函数2.添加函数3.删除函数4.判断函数5.大小函数6.其他函数7.总结 代码详解1.基本类型优先队列的例子:2.用pair做优先队列元素的例子:3.用自定义类型做优先队列元素的例子

priority_queue

优先队列(priority_queue),实际上,它的本质就是一个heap,可以参考传送门 这个写的也不错

优先级队列是一个拥有权值观念的queue。它允许在底端添加元素、在顶端去除元素、删除元素。 缺省情况下,优先级队列利用一个大顶堆完成。

在这里插入图片描述 而C++STL中的优先队列就是在这个队列的基础上,把其中的元素加以排序。其内部实现是一个二叉堆。所以优先队列其实就是把堆模板化,将所有入队的元素排成具有单调性的一队,方便我们调用。

一.优先队列简介

普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。 在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。 首先要包含头文件#include, 他和queue不同的就在于我们可以自定义其中数据的优先级,让优先级高的排在队列前面,优先出队。

二.优先队列特性和操作

优先队列具有队列的所有特性,包括队列的基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的。

1.头文件&定义 #include #include //greater // 定义 priority_queue pq; 2.默认优先输出大数据

priority_queue

其中, Type 为数据类型. Container 为保存数据的容器. Functional 为元素比较的方式.

若不写后面两个参数.

容器 默认使用 vector

比较方式 默认使用 operator



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3