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

商务网站开发的基本原则广告艺术设计专业学什么

商务网站开发的基本原则,广告艺术设计专业学什么,国外优秀论文网站,wordpress的多说美化文章目录 priority_queuepriority_queue 使用priority_queue的模拟实现向上调整算法向下调整算法pushpoptopsizeempty 仿函数完整代码 priority_queue 优先队列#xff08;priority_queue#xff09;也是队列的一种#xff0c;priority_queue的接口是和queue的接口是相同的… 文章目录 priority_queuepriority_queue 使用priority_queue的模拟实现向上调整算法向下调整算法pushpoptopsizeempty 仿函数完整代码 priority_queue 优先队列priority_queue也是队列的一种priority_queue的接口是和queue的接口是相同的。所以两者的使用语法也是相同的。我们直接看优先队列priority——queue的底层实现原理。 默认情况下priority_queue是大堆。 priority_queue 使用 //用vector作为底层容器内部构造大堆结构。 priority_queueint, vectorint, lessint q1; //用vector作为底层容器内部构造小堆结构。 priority_queueint, vectorint, greaterint q2; //不指定底层容器和内部需要构造的堆结构。 priority_queueint q3;#include iostream #include functional #include queue using namespace std; int main() {priority_queueint q;q.push(3);q.push(6);q.push(0);q.push(2);q.push(9);q.push(8);q.push(1);while (!q.empty()){cout q.top() ;q.pop();}cout endl; //9 8 6 3 2 1 0return 0; } priority_queue的模拟实现 priority_queue的底层实际上就是堆模拟实现priority_queue之前需要知道向下调整和向上调整算法。下面这两种算法我们均以大堆为例 向上调整算法 向上调整算法的前提 若想将其调整为小堆那么根结点的左右子树必须都为小堆。  若想将其调整为大堆那么根结点的左右子树必须都为大堆 向堆中插入数据需要使用到向上调整算法 先将元素插入到堆的末尾,即最后一个孩子之后从插入节点位置开始和父节点比较我们以大堆为例如果目标结点的值比父结点的值大则交换目标结点与其父结点的位置并将原目标节点的父节点当作新的目标节点继续向上调整调整到根节点结束此时该树已经是大堆了 图中是以小堆为例 向下调整算法 向下调整算法的前提 若想将其调整为小堆那么根结点的左右子树必须都为小堆。  若想将其调整为大堆那么根结点的左右子树必须都为大堆   从根节点开始选出左右孩子值较大的节点让值较大的节点与父节点的值进行比较如果值较大的节点比父节点的值小交换两者位置将原来值较大的孩子节点作为父节点继续向下调整调整到叶子节点结束 图中是以小堆为例 push void push(const T x){_con.push_back(x);AdjustUp(_con.size() - 1);}pop void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDown(0);}top const T top(){return _con[0];}size bool size(){return _con.size();} empty bool empty(){return _con.empty();}仿函数 using namespace std; //仿函数 /函数对象 template class T class Less { public:bool operator() (const T x, const T y){return x y;} };int main() {Lessint lessfunc;bool result lessfunc(6, 2);//仿函数//bool result lessfunc.operator()(6, 2);cout boolalpha result endl;return 0; }完整代码 #pragma once #includevector #includefunctional using namespace std;//仿函数 /函数对象 template class T class Less { public:bool operator() (const T x, const T y){return x y;} }; template class T class Greater { public:bool operator() (const T x, const T y){return x y;} };namespace cxq {templateclass T, class Container vectorT, class Compare LessT class priority_queue{private:void AdjustDown(int parent)//从根节点开始{Compare com;//仿函数int child parent * 2 1;while (child _con.size()){//假设默认左孩子大于右孩子// if (child 1 _con.size() _con[child 1] _con[child])//右孩子要存在防止越界if (child 1 _con.size() com(_con[child 1], _con[child])){child;}//if (_con[child] _con[parent])if (com(_con[parent], _con[child])){swap(_con[child], _con[parent]);int parent child;child parent * 2 1;}else{break;}}}void AdjustUp(int child){Compare com;//仿函数int parent (child - 1) / 2;//大堆while (child 0){//if (_con[child] _con[parent])if (com(_con[parent], _con[child])){swap(_con[child], _con[parent]);int child parent;parent (child - 1) / 2;}else{break;}}}public://默认构造priority_queue(){}templateclass InputIterator//构造函数priority_queue(InputIterator first, InputIterator last){while (first ! last){_con.push_back(*first);first;}//建堆//最后一个非叶子节点for (size_t i (_con.size() - 1 - 1) / 2; i 0; i){AdjustDown(i);}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();AdjustDown(0);}void push(const T x){_con.push_back(x);AdjustUp(_con.size() - 1);}const T top(){return _con[0];}bool empty(){return _con.empty();}bool size(){return _con.size();}private:Container _con;};void test_priority_queue1(){//默认是大堆--less//priority_queueint pq;priority_queueint, vectorint, Greaterint pq;//小堆pq.push(3);pq.push(5);pq.push(1);pq.push(4);while (!pq.empty()){cout pq.top() ;pq.pop();}cout endl;}class Date{public:Date(int year 1900, int month 1, int day 1): _year(year), _month(month), _day(day){}bool operator(const Date d)const{return (_year d._year) ||(_year d._year _month d._month) ||(_year d._year _month d._month _day d._day);}bool operator(const Date d)const{return (_year d._year) ||(_year d._year _month d._month) ||(_year d._year _month d._month _day d._day);}friend ostream operator(ostream _cout, const Date d);//声明private:int _year;int _month;int _day;};ostream operator(ostream _cout, const Date d){_cout d._year - d._month - d._day;return _cout;}struct LessPDate{//仿函数bool operator() ( const Date * p1 , const Date* p2){return *p1 *p2;}};void test_priority_queue2(){//priority_queueDate pq;//pq.push(Date(2023, 7, 20));//pq.push(Date(2023, 6, 20));//pq.push(Date(2023, 8, 20));//while (!pq.empty())//{// cout pq.top() ;// pq.pop();//}//cout endl;priority_queueDate*, vectorDate*, LessPDate pq;pq.push(new Date(2023, 7, 20));pq.push(new Date(2023, 6, 20));pq.push(new Date(2023, 8, 20));while (!pq.empty()){cout *pq.top() ;pq.pop();}cout endl;}}
http://www.pierceye.com/news/128031/

相关文章:

  • 建设网站的服务端口教育培训类网站建设
  • 济南网站建设 泉诺如何防范钓鱼网站
  • 沈阳网站推广公司西安网站设计师
  • 网站建设费用计入什么二级科目企业门户网站建设的必要性
  • 宁夏水利厅建设管理处网站大连网站制作431
  • 泰安最好网站建设公司威海房地产网站建设
  • 公司网站建设网站说出网站建设流程
  • wordpress门户网站模板下载大专计算机专业主要学什么
  • 专业的微商城网站建设农产品网站建设计划书
  • 软件网站开发公司广告公司创意取名
  • 工业设计东莞网站建设个人网站备案网站名称
  • 网站只能用ip访问网站吗导航网站 win8风格
  • 用ps可以做网站吗制作一个网站流程
  • 做网站支付系统难度做灯笼手工简单做法
  • 合肥珍岛公司做网站推广怎么样用excel做网站
  • 大连网站建设开源广告制作行业
  • 安阳河南网站建设wordpress 建立导航
  • 电子商务网站建设 考卷wordpress替换头像
  • 石家庄的网站的公司手机wordpress加载图片慢
  • 建企业网站教程wordpress网站被黑
  • 饮料网站建设市场分析什么是seo网站优化
  • 滑动网站国家级示范建设网站
  • 做一门户网站价格个人网站制作模板图片
  • 做网站需要审核资质吗wordpress 防恶意注册
  • 怎么不花钱建网站无人售货机
  • 可以做空股票的网站thinkphp网站开发
  • 给别人做网站怎么赚钱吗专业网络推广软件
  • SOHO英文网站制作晋江网站制作
  • 启东住房和城乡建设局网站邢台网站制作报价多少钱
  • 佛山网站建设seo优化做英文的小说网站有哪些