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

网站开发中存在的问题bt磁力链好用的引擎

网站开发中存在的问题,bt磁力链好用的引擎,刷流水兼职日结1000,常熟建设合同备案在哪个网站目录 前言基本结构如何设置默认大小堆底层实现仿函数的使用向上调整算法向下调整算法其他接口 end 前言 priority_queue的介绍 优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中的元素构造成堆的结构,因此priorit…

目录

  • 前言
  • 基本结构
  • 如何设置默认大小堆
  • 底层实现
    • 仿函数的使用
    • 向上调整算法
    • 向下调整算法
    • 其他接口
  • end

前言

priority_queue的介绍
优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中的元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用priority_queue。

注意: 默认情况下priority_queue是大堆。

基本结构

关于优先级队列实际上就是一个堆,堆分为大根堆和小根堆
在这里插入图片描述

  • 这里列举大根堆

关于堆这个数据结构我在【手撕数据结构】二叉树和堆这篇文章里已经详细讲解过,如果还不了解的可以去看看这篇文章

如何设置默认大小堆

这里我们提出一个叫仿函数的概念:
看看库里面的priority_queue

在这里插入图片描述

  • 其实仿函数就是一个类,和容器适配器差不多,仿函数仿在哪里,我们知道函数调用都是通过()来标记这是一个函数,所以这个类里面就重载了()运算符
    在这里插入图片描述

注意:
1.提供Greater(大于)是小根堆
2.提供Less(小于) 是大根堆

底层实现

仿函数的使用

	template<class T, class Contain = vector<T>, class Compare = Less<T>>class Priority_queue{Compare com; 
  • 定义一个仿函数对象com
if (child + 1 < _con.size() && com(_con[child], _con[child + 1]))- 这里就是使用对象的运算符重载()达到大小相比

向上调整算法

  • 这个原理我也在以前的文章中讲过,这里就不再详细讲解了,请往上面的链接去看
void AdjustUp(int child)
{int parent = (child - 1) / 2;while (child > 0)	//测试一下{if (com(_con[parent], _con[child])){swap(_con[parent], _con[child]);child = parent;parent = (child - 1) / 2;}else{break;}}

向下调整算法

	void AdjustDown(int parent){int child = 2 * parent + 1;while (child < _con.size()){if (child + 1 < _con.size() && com(_con[child], _con[child + 1])){child++;}if (com(_con[parent], _con[child])){swap(_con[parent], _con[child]);parent = child;child = 2 * parent + 1;}else{break;}}}

其他接口

		void push(const T& x){_con.push_back(x);AdjustUp(_con.size() - 1);}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDown(0);}const T& top(){return _con[0];}bool empty(){return _con.empty();}int size(){return _con.size();}
  • 根据复用vector这个容器适配器接口就行, pop是堆的删除所以是删除堆顶,然后重新调整堆的特征结构
  • 插入从最后插入,也是要调整结构。
  • 具体原理图解看以前的文章,前面我已经给了链接。

end

感谢大家的阅读,希望对你们有帮助

http://www.dtcms.com/wzjs/126625.html

相关文章:

  • 怎么做免费的网站推广快速排名优化系统
  • 网站运营如何做统计站老站长推荐草莓
  • 专门做汽配的网站推广引流图片
  • 国内网站用django做的磁力天堂
  • 网站系统建设预算关键词排名规则
  • 做有趣的网站上海网站外包
  • 南昌做网站seoseo站长助手
  • 网站建设策划图片郑州seo网站有优化
  • 做外贸b2b免费网站谷歌官网网址
  • 现在室内设计师好做吗seo优化推广公司
  • 软件开发 网站开发哪个难百度搜索电话
  • 上海网站外包建设做网络营销推广的公司
  • 企业铭做网站网络seo优化平台
  • 博客网站需求分析搜索大全引擎入口网站
  • 企业网站开发用什么好软文营销常用的方式是什么
  • 河北省建设厅政府网站公司网络推广方案
  • 安全生产门户网站建设方案今日国际新闻头条新闻
  • 百度竞价网站谁做营业推广促销
  • 推动高质量发展建议找索引擎seo
  • 开发网站需要多久seo网站免费优化软件
  • 内黄县住房和城乡建设局网站怎么办网站平台
  • 广安seo优化页面优化算法
  • 外国做刹车片的企业网站互联网金融营销案例
  • 建设部网站资质查询怎么做网站推广和宣传
  • 长沙做网站的公司国内真正的永久免费建站
  • 做网站需要向客户了解什么seo sem关键词优化
  • 做装修公司网站费用链接生成器
  • 如何提升网站收录seo常规优化
  • wordpress欢迎新会员什么是seo搜索引擎优化
  • 网站培训班论文收录网站有哪些