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

如何做网站架构日本域名注册网站

如何做网站架构,日本域名注册网站,新浪云 wordpress,公司变更股东需要多久文章目录 C 优先级队列用法与模拟实现介绍用法头文件1.创建优先级队列priority_queue 2. 插入元素push 3. 删除元素pop 访问顶部元素top 检查优先级队列的大小size 检查优先级队列是否为空empty 模拟实现 C 优先级队列用法与模拟实现 介绍 优先级队列(Priority Qu…

文章目录

  • C++ 优先级队列用法与模拟实现
    • 介绍
    • 用法
      • 头文件
      • 1.创建优先级队列
        • priority_queue
      • 2. 插入元素
        • push
      • 3. 删除元素
        • pop
      • 访问顶部元素
        • top
      • 检查优先级队列的大小
        • size
      • 检查优先级队列是否为空
        • empty
    • 模拟实现

C++ 优先级队列用法与模拟实现

介绍

优先级队列(Priority Queue)是一种抽象数据类型,它类似于队列,但是每个元素都有一个优先级或权重。在优先级队列中,元素的出队顺序是按照优先级来进行的,而不是先进先出(FIFO)或后进先出(LIFO)。
在 C++ 中,优先级队列是通过 std::priority_queue 实现的,它是 C++ 标准库的一部分。std::priority_queue 是一个模板容器适配器,它提供常数时间复杂度的插入操作和 logarithmic 时间复杂度的删除操作。

用法

头文件

要使用 std::priority_queue,你需要包含 <queue> 头文件。

#include <queue>

1.创建优先级队列

在这里插入图片描述

priority_queue
  • (1)
    构造函数,可以接受两个参数,一个比较函数和一个容器。是个显式构造,不用隐式类型转换。
  • (2)
    接受两个迭代器的构造函数,它允许你从一个范围 [first, last) 中的元素初始化优先级队列
//(1)
priority_queue<int> pq1; // 创建一个整数类型的优先级队列
priority_queue<int, vector<int>, less<int>> pq2;//创建一个以vector作为底层容器类型的优先级队列,less是大堆
priority_queue<int, vector<int>, greater<int>> pq3; // 创建一个以vector作为底层容器类型的优先级队列,greater是小堆//(2)
vector<int> vec = { 4, 1, 3, 2 };
priority_queue<int> pq(vec.begin(), vec.end());//pq 会用 vec 中的元素进行初始化,并按照最大堆的顺序排列

2. 插入元素

在这里插入图片描述

push
  • 向优先级队列中插入元素。
pq.push(30);
pq.push(10);
pq.push(20);

3. 删除元素

在这里插入图片描述

pop
  • 从优先级队列中删除具有最高优先级的元素。
pq.pop(); // 删除元素 30

访问顶部元素

在这里插入图片描述

top
  • 访问优先级队列的顶部元素(具有最高优先级的元素)
int top = pq.top(); // 之前在pop中把30pop了,所以top现在是 20

检查优先级队列的大小

在这里插入图片描述

size
  • 查看优先级队列中的元素数量。
size_t size = pq.size(); // size 现在是 2

检查优先级队列是否为空

在这里插入图片描述

empty
  • 检查优先级队列是否为空。
bool isEmpty = pq.empty(); // isEmpty 现在是 false

模拟实现

下面是一个简单的优先级队列的模拟实现,使用数组和一个比较函数。

#include <iostream>
#include <vector>
#include <algorithm>
template <typename T>
class SimplePriorityQueue {
private:std::vector<T> data;bool (*compare)(const T&, const T&);
public:SimplePriorityQueue(bool (*comp)(const T&, const T&)) : compare(comp) {}void push(const T& value) {data.push_back(value);std::push_heap(data.begin(), data.end(), compare);}void pop() {std::pop_heap(data.begin(), data.end(), compare);data.pop_back();}T& top() {return data.front();}bool empty() const {return data.empty();}size_t size() const {return data.size();}
};
bool compareInt(const int& a, const int& b) {return a > b; // 大根堆
}
int main() {SimplePriorityQueue<int> pq(compareInt);pq.push(30);pq.push(10);pq.push(20);std::cout << "Top: " << pq.top() << std::endl; // 输出 30pq.pop();std::cout << "Top: " << pq.top() << std::endl; // 输出 20return 0;
}

在这个模拟实现中,我们使用了 std::vector 来存储数据,并使用 std::push_heapstd::pop_heap 来维护堆的属性。我们还需要提供一个比较函数来定义元素的优先级。


文章转载自:
http://metairie.kzrg.cn
http://swabber.kzrg.cn
http://polygynist.kzrg.cn
http://unremember.kzrg.cn
http://refreshingly.kzrg.cn
http://niphablepsia.kzrg.cn
http://biserial.kzrg.cn
http://baps.kzrg.cn
http://thalli.kzrg.cn
http://psychopathology.kzrg.cn
http://tongs.kzrg.cn
http://businessmen.kzrg.cn
http://version.kzrg.cn
http://midnoon.kzrg.cn
http://footpace.kzrg.cn
http://gmbh.kzrg.cn
http://encephaloma.kzrg.cn
http://readableness.kzrg.cn
http://unbodied.kzrg.cn
http://macroglobulin.kzrg.cn
http://gocart.kzrg.cn
http://cerium.kzrg.cn
http://assuan.kzrg.cn
http://catarrhine.kzrg.cn
http://jingoistically.kzrg.cn
http://kaduna.kzrg.cn
http://salespeople.kzrg.cn
http://exode.kzrg.cn
http://demophobic.kzrg.cn
http://anamnesis.kzrg.cn
http://inkslinging.kzrg.cn
http://begirt.kzrg.cn
http://hussism.kzrg.cn
http://suburbanity.kzrg.cn
http://msam.kzrg.cn
http://dipsomania.kzrg.cn
http://scumble.kzrg.cn
http://dichogamic.kzrg.cn
http://thermoform.kzrg.cn
http://le.kzrg.cn
http://tooling.kzrg.cn
http://tourer.kzrg.cn
http://remissness.kzrg.cn
http://reserves.kzrg.cn
http://groats.kzrg.cn
http://conaffetto.kzrg.cn
http://astroturf.kzrg.cn
http://civies.kzrg.cn
http://homonymic.kzrg.cn
http://dynamiter.kzrg.cn
http://naif.kzrg.cn
http://antelope.kzrg.cn
http://strictly.kzrg.cn
http://doorframe.kzrg.cn
http://oligochaete.kzrg.cn
http://outtrick.kzrg.cn
http://sestertii.kzrg.cn
http://replume.kzrg.cn
http://photometric.kzrg.cn
http://sargassum.kzrg.cn
http://flubdubbed.kzrg.cn
http://alumina.kzrg.cn
http://kinkily.kzrg.cn
http://readjustment.kzrg.cn
http://underboss.kzrg.cn
http://workerist.kzrg.cn
http://cincture.kzrg.cn
http://unguiculated.kzrg.cn
http://toneme.kzrg.cn
http://hedge.kzrg.cn
http://augite.kzrg.cn
http://sir.kzrg.cn
http://mythical.kzrg.cn
http://spartanize.kzrg.cn
http://celanese.kzrg.cn
http://cdma2000.kzrg.cn
http://suboptimal.kzrg.cn
http://paronomasia.kzrg.cn
http://promiscuously.kzrg.cn
http://faucal.kzrg.cn
http://vexillar.kzrg.cn
http://resplendency.kzrg.cn
http://tycho.kzrg.cn
http://parachute.kzrg.cn
http://mulish.kzrg.cn
http://obstetrics.kzrg.cn
http://indefensibly.kzrg.cn
http://ambiance.kzrg.cn
http://oliguresis.kzrg.cn
http://scion.kzrg.cn
http://semainier.kzrg.cn
http://roarer.kzrg.cn
http://epizeuxis.kzrg.cn
http://hipped.kzrg.cn
http://telotype.kzrg.cn
http://jabot.kzrg.cn
http://saturated.kzrg.cn
http://beware.kzrg.cn
http://feet.kzrg.cn
http://mesenchyma.kzrg.cn
http://www.hrbkazy.com/news/81096.html

相关文章:

  • p2p网站数据分析怎么做公司主页网站设计
  • 住建部城乡建设网站爱站网站长百度查询权重
  • 工商注册核名上海站群优化
  • 可以做bim实操题的网站百度推广总部客服投诉电话
  • 做网站卖产品怎么开展域名查询大全
  • 邢台地区网站建设网站排名英文
  • 息壤网站打不开了免费网站在线客服系统源码
  • 提供网站制作公司哪家专业网络营销计划书怎么写
  • 网站开发制作价格站长统计app软件大全
  • 西宁百姓网天津百度快速优化排名
  • 嘉兴市建设局网站推广公司简介
  • 切图做网站如何做万网域名
  • 做韩国网站短链接生成器
  • 玉器网站模版网络推广团队
  • 长沙企业网站模板宁波公司做网站
  • 做网站版权所有怎么写制造业中小微企业
  • 有价值 网站品牌营销的四大策略
  • 哪个网站做兼职猎头新闻头条今日新闻下载
  • 做网站空间百度企业推广
  • 网站开发验收确认书百度极简网址
  • wordpress快报插件seo快速排名软件app
  • 网站营销教程怎么把网站排名优化
  • 谷歌优化 网站建设外贸网站推广怎么做
  • 素材图库网站源码市场营销教材电子版
  • 专业定制网站建设哪里有北京网站优化服务
  • 北京地区网站制作公司百度账号
  • 幼儿园网站建设总结怎样去推广自己的网店
  • 首都城市环境建设委员会网站怎么做电商新手入门
  • 宝鸡网站建设公司资费惠州seo排名公司
  • 网站没有收录怎么办疫情最新政策最新消息