1. 简介
优先队列是一种极其特殊的队列,他与标准的队列使用线性结构进行计算不同,优先队列的底层是以散列的状态(非线性)表现的,他与标准的队列有如下的区别,标准的队列遵从严格的先进先出,优先队列并不遵从标准的先进先出,而是对每一个数据赋予一个权值,根据当前队列权值的状态进行排序,使得权值最大(或最小)的永远排在队列的最前面。
2. 相关文件
由于其属于队列的一种,因此可以直接使用队列的头文件#include
3. 初始化
priority_queuepriority_queue //直接输入元素则使用默认容器和比较函数 |
与往常的初始化不同,优先队列的初始化涉及到一组而外的变量,这里解释一下初始化:
a) T就是Type为数据类型
b) Container是容器类型,(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector)
c) Compare是比较方法,类似于sort第三个参数那样的比较方式,对于自定义类型,需要我们手动进行比较运算符的重载。与sort直接Bool一个函数来进行比较的简单方法不同,Compare需要使用结构体的运算符重载完成,直接bool cmp(int a,int b){ return a>b; } 这么写是无法通过编译的。
使用的举例有:
struct cmp{ //这个比较要用结构体表示 bool operator()(int &a, int &b) const { return a > b; }}; priority_queue q; //使用自定义比较方法priority_queue pq; |
4. 常用接口
我们预先通过priority_queue q创建了一个队列,命名为q,方便举例。
a)大小size()
返回队列元素的个数
函数原型:size_type size() const;
cout
相关推荐
java.lang.String 类提供了许多方法来处理字符串。通过这些方法,可以对字符串执行修剪、连接、转换和比较等操作。我们可以使用String 类的replaceAll() 方法从给定的字符串中提取数字。 示例 import java.util.Scanner; public class StringExtractTest { public static void main(String[]
随着工作年限越来越高,越来越觉得闭门造车是一种非常不好的习惯,还是得多看看别人是怎么写代码的,毕竟人外有人嘛,所以我觉得多看看开源库的源码,是一种非常好的学习方式,比看视频还管用!!! 你想想,这些开源库的作者都是大厂的前端大佬,咱们直接看他们写的代码,学不到东西才怪呢~ Pinia 很多人都知道这个库,一个 Vue 的状态管理库,可以学学如何在 Vue 中去做状态管理,其实 Pinia 就是依赖
快速上手Java反编译工具技巧,需要具体代码示例 导语:在软件开发领域,反编译(decompilation)是一种常见的技术,用于将已编译的二进制代码转换为可读性较好的高级程序源代码。Java作为一种常用的编程语言,也有相关的反编译工具可供使用。本文将介绍几种常见的Java反编译工具,并提供具体的代码示例,以帮助读者快速上手使用这些工具。 一、常见的Java反编译工具 JD-GUI(Java De
一、背景 得物大模型训练与推理平台上线几个月后,我们与公司内部超过 10 个业务领域展开了全面的合作。在一些关键业务指标方面,取得了显著的成效,例如: 效率相关部门的合作,多维度打标总正确率取得 2 倍以上提升。利用大模型开辟了新的业务,提升了效率部门的人力产出。 某业务订单 NPS 的识别准确率由 70% (PROMPT 方式)提升到 85% (平台训练大模型) 。 本文基于我们与业务合作的经验
近年来,随着网络应用的不断发展,越来越多的应用程序需要实现远程过程调用(Remote Procedure Call,简称RPC)的功能。传统的RPC框架如Dubbo、Thrift、gRPC等都能够满足这方面的需求,但是随着应用程序和业务的增加,性能方面的问题也愈发明显。为了解决这些问题,开源社区推出了一个基于PHP语言的高性能的RPC服务器——Swoole。 Swoole是一个基于PHP语言开发的
回到顶部
|