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

怎么做网站的seo优化全网关键词优化公司哪家好

怎么做网站的seo优化,全网关键词优化公司哪家好,移动商城app下载,成都旅游住哪里目录 一、priority_queue的介绍 二、 priority_queue的本质 三、priority_queue的使用 四、priority_queue的模拟实现 总结 一、priority_queue的介绍 首先让我们通过阅读优先级队列的官方文档 简单翻译一下 1. 优先队列是一种容器适配器#xff0c;根据严格的弱排序标准…目录 一、priority_queue的介绍 二、 priority_queue的本质 三、priority_queue的使用 四、priority_queue的模拟实现 总结 一、priority_queue的介绍 首先让我们通过阅读优先级队列的官方文档 简单翻译一下 1. 优先队列是一种容器适配器根据严格的弱排序标准它的第一个元素总是它所包含的元素中最大的。 2. 此上下文类似于堆在堆中可以随时插入元素并且只能检索最大堆元素 ( 优先队列中位于顶部的元素) 。 3. 优先队列被实现为容器适配器容器适配器即将特定容器类封装作为其底层容器类 queue 提供一组特定的成员函数来访问其元素。元素从特定容器的“ 尾部 ” 弹出其称为优先队列的顶部。 4. 底层容器可以是任何标准容器类模板也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问并支持以下操作 empty() 检测容器是否为空 size() 返回容器中有效元素个数 front() 返回容器中第一个元素的引用 push_back() 在容器尾部插入元素 5. 标准容器类 vector 和 deque 满足这些需求。默认情况下如果没有为特定的 priority_queue 类实例化指定容器类则使用vector 。 6. 需要支持随机访问迭代器以便始终在内部保持堆结构。容器适配器通过在需要时自动调用算法函数make_heap、 push_heap 和 pop_heap 来自动完成此操作。 二、 priority_queue的本质 通过阅读优先级队列的模板我们可以看到priority_queue默认使用vector作为底层的存储数据的容器然后在vector之上又使用了堆算法将vector中的元素构成堆的结构因此我们可以认为优先级队列就是堆所有需要的堆的位置都可以使用 priority_queue比如top_k问题。对于堆来说大堆还是小堆是十分关键的让我们将目光看向第三个类模板参数 Compare lesstypename Container::value_type 这里的less是类中仿函数的使用其本质其实就是判断是否小于 此时我们已经彻底了解了优先级队列的本质接下来我们开始学习使用该容器 三、priority_queue的使用 下面我们简单的使用一下上面提到的函数 #include queue #include iostreamint main() {std::priority_queueint, std::vectorint, std::lessint pq;pq.push(3);pq.push(1);pq.push(4);pq.push(1);while (!pq.empty()) {std::cout pq.top() ;pq.pop();}return 0; }输出结果为4 3 1 1 在上面的代码中我们创建了一个存储整数的优先队列pq并依次插入了4个元素。然后我们使用top()函数和pop()函数访问和移除元素最后使用empty()函数检查队列是否为空。 其实我们对于优先级队列的使用就是对于堆的使用。 四、priority_queue的模拟实现 最基础的就是建堆 template class InputIterator priority_queue(InputIterator first, InputIterator last) {while (first ! last){c.push_back(*first);first;}for (int i (c.size() - 2) / 2; i 0; i)//-1是数组下标里面-1再-1 /2是找 最后一个孩子的爹{AdjustDown(i);} }//向下调整 void AdjustDown(int parent) {size_t child parent * 2 1;while (child c.size()){if (child 1 c.size() comp(c[child], c[child 1]))child;//找到最大的左右孩子之一if (comp(c[parent], c[child])){swap(c[parent], c[child]);parent child;child parent * 2 1;}else break;} }Container c;Compare comp; 其次就是添加和减少 void push(const T x){c.push_back(x);AdjustUp(c.size() - 1);}void AdjustUp(int child){int parent (child - 1) / 2;while (child 0){if(comp(c[parent], c[child])){std::swap(c[parent], c[child]);childparent ;parent (child - 1) / 2;}else break;}}void pop(){std::swap(c[0], c[c.size() - 1]);c.pop_back();AdjustDown(0);} 最后就是其他比较简单的函数 bool empty() const{return c.empty();}size_t size() const{return c.size();}const T top() const{return c[0];}总结 优先队列是一种特殊的队列其中存储的元素按照一定的优先级进行排列。在priority_queue中优先级最高的元素能够快速被访问和删除。
http://www.zqtcl.cn/news/524078/

相关文章:

  • 网站底部导航代码成品视频直播软件推荐哪个好一点ios
  • 上海电商网站开发公司垫江网站建设价格
  • 门户网站建设存在问题与不足商城网站开发项目文档
  • wordpress建站方便吗wordpress加入海报功能
  • 网站名称注册保护2018wordpress主题
  • 类似享设计的网站企业信息系统公示
  • 如何学习网站开发酒店网站源码
  • 怎么用nas做网站服务器WordPress云虚拟空间
  • 网站设计 ipad企业品牌推广宣传方案
  • 织梦网站怎么更换模板济南建设厅网站
  • 用wordpress仿站专业做俄语网站建设司
  • 做暧暧网站网站开发 思维导图
  • asp.net做登录注册网站苏醒的wordpress主题怎么样
  • 正能量不良网站推荐2020网站建设单位是什么
  • 固镇网站建设郑州网站seo顾问
  • 新建定制网站费用公司网站手机端和电脑端
  • 网站域名注册地址苏州建设培训中心网站
  • 高端娱乐网站建设沈阳seo专业培训
  • 做播放器电影网站需要多少钱6广州seo公司推荐
  • 笔记本可以做网站吗怎样查看网站是否备案
  • 千灯做网站网站静态和伪静态意思
  • 做境外碎片化旅游的网站wordpress wdcp
  • 整容医院网络建设公司seo实战技术培训
  • 免费服务器建立网站郑州seo线上推广系统
  • 医院网站建设的目的qq小程序源码
  • 郑州seo网站排名优化公司建站行业发展
  • 彭山住房和城乡建设局网站儒枫网网站建设
  • wap asp网站模板下载中企动力骗子公司
  • 中文电商网站模板洛阳网络公司排名
  • 国外毕业设计网站青岛seo服务