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

建设php网站网站优化公司大家好

建设php网站,网站优化公司大家好,WordPress如何添加cnzz,国内正规seo网络推广文章目录 补充知识#xff1a;仿函数一、优先级队列#xff1a;1.引入2.介绍 二、priority_queue的模拟实现1.大体框架2.私有成员函数#xff1a;1.向下调整#xff08;AdjustDown#xff09;2.向上调整#xff08;AdjustUp#xff09; 3.公有成员函数1大小#xff08;… 文章目录 补充知识仿函数一、优先级队列1.引入2.介绍 二、priority_queue的模拟实现1.大体框架2.私有成员函数1.向下调整AdjustDown2.向上调整AdjustUp 3.公有成员函数1大小size.2是否为空empty.3.移除堆顶的元素pop4.元素插入push5.堆顶的元素top6.构造函数1.默认无参构造2.迭代器构造 补充知识仿函数 C仿函数function object是一种可以像函数一样调用的对象。仿函数通常是一个类它重载了函数调用运算符operator()使得对象可以被调用。 一、优先级队列 1.引入 优先级队列Priority Queue在底层实现上使用了一种称为堆Heap的数据结构通常使用数组比如C中的std::vector来表示。堆是一种完全二叉树数据结构具有以下特点 堆是一个完全二叉树也就是说除了最底层其他层都必须是完全填满的最底层的节点依次从左到右填充。 2.堆中的每个节点的值都大于等于或小于等于其子节点的值这就是所谓的堆序性质。 2.介绍 优先队列是一种容器适配器根据严格的弱排序标准它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆在堆中可以随时插入元素并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被实现为容器适配器容器适配器即将特定容器类封装作为其底层容器类底层容器可以是任何标准容器类模板也可以是其他特定设计的容器类。容器应该可以通过随机访问迭 代器访问并支持以下操作 empty()检测容器是否为空 size()返回容器中有效元素个数 front()返回容器中第一个元素的引用 push_back()在容器尾部插入元素 pop_back()删除容器尾部元素标准容器类vector和deque满足这些需求。默认情况下如果没有为特定的priority_queue类实例化指定容器类则使用vector。 虽然底层实现中使用了vector但优先级队列仍然保持了队列的特性即根据优先级出队元素 二、priority_queue的模拟实现 1.大体框架 namespace simulation { templateclass T, class Container vectorT, class Compare lessT//Compare这里传的是仿函数默认为系统里自带的less仿函数也可以自己添加//用于比较大小Container为底层实现容器默认为vectorclass priority_queue {private://私有成员函数void AdjustDown(int parent) { }void AdjustUp(int child) {}public://公有成员函数void pop() { }void push(const T x) {}const T top() { }bool empty() {}size_t size() {}priority_queue(){}private:Container _con;//成员变量};2.私有成员函数 1.向下调整AdjustDown 图中是在建小堆但我们代码以大堆为例除了大于小于的方向不同但逻辑是一样的 void AdjustDown(int parent) {//向下调整条件// 左右子树都是大堆/小堆int child parent * 2 1;Compare com;//仿函数的实例化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 parent * 2 1;}else {break;}}}2.向上调整AdjustUp void AdjustUp(int child) {//向上调整条件// 除了child这个位置前面的数据构成堆int parent (child - 1) / 2;Compare com;while (child 0) {if (com(_con[parent], _con[child])) {swap(_con[parent], _con[child]);child parent;//接着向上parent (child - 1) / 2;}else {break;}}}3.公有成员函数 1大小size. 2是否为空empty. 3.移除堆顶的元素pop void pop() {swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDown(0);}4.元素插入push void push(const T x) {_con.push_back(x);//新元素向上调整AdjustUp(_con.size() - 1);}5.堆顶的元素top const T top() {return _con[0];}6.构造函数 1.默认无参构造 priority_queue() { //内容可以什么都不写因为初始化会去内置类型不用管自定义类型会去调用其 //默认构造函数这里会直接调用成员变量_con的默认构造 //当你写了迭代器构造后这个无参构造你必须要有因为当你写了一个构造函数 //以后编译器就不会自己再生成默认构造函数}2.迭代器构造 templateclass InputIteratorpriority_queue(InputIterator first, InputIterator last) {while (first ! last) {_con.push_back(*first);first;}for (int i (_con.size() - 1 - 1) / 2; i 0; i--) {AdjustDown(i);}}
http://www.hkea.cn/news/14405859/

相关文章:

  • wordpress区分移动站静态网站登陆怎么做
  • 我有服务器怎么做网站网站做seo
  • 海珠做网站高清无线视频传输系统
  • 河南网站建设的详细策划佛山制作手机网站
  • 找简历的网站wordpress首页多重筛选
  • 微擎pc网站开发企业所得税税前扣除项目有哪些
  • 福州网站开发风格房产备案查询系统
  • 网站建设专员网站标题怎么做链接
  • 织梦网站英文版怎么做松江移动网站建设
  • 企业摄影网站模板wordpress接入翼支付宝
  • 郑州好的网站建设公司学做网站多长时间
  • 郑州网站建设知名公司开发公司企业管理制度
  • 做网站找哪家最好云南做网站费用
  • 宁城网站建设公司公司做网站能够带来的好处
  • 建立网站要钱吗财务记账网站开发
  • 宝塔网站搭建教程seo关键词库
  • 个人主页免费网站下载微信安装微信
  • 上海模板网站套餐推广手段
  • 微信网站怎么做给人做网站
  • 网站访客qq抓取统计系统怎么建立网站平台
  • 创建蛋糕网站建设方案合肥网站建设渠道
  • 怎么电话销售网站建设济南建网站的网站
  • 店铺网站平台建设方案深圳公司电话
  • 网站平台建设规划设计电影完整版视频在线
  • 个人网站有哪些站wordpress 搜索引擎
  • 授权登录网站怎么做济南好的seo
  • 沈阳网站制作全网性深圳做网站的公司搜行者seo
  • 世界建筑设计网站网站全程设计技术
  • 威海自适应网站建设营销型网站建设 兼职
  • 做一个电子商务网站比较好的网站建设平台