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

免费网站建设有哪些高端定制网站设计

免费网站建设有哪些,高端定制网站设计,海口有哪几家是做网站的,广东建设工程注册中心网站优先队列(priority queue)普通的队列是一种先进先出的数据结构#xff0c;元素在队列尾追加#xff0c;而从队列头删除。在优先队列中#xff0c;元素被赋予优先级。当访问元素时#xff0c;具有最高优先级的元素最先删除。优先队列具有最高级先出 #xff08;first in, l…优先队列(priority queue)普通的队列是一种先进先出的数据结构元素在队列尾追加而从队列头删除。在优先队列中元素被赋予优先级。当访问元素时具有最高优先级的元素最先删除。优先队列具有最高级先出 first in, largest out的行为特征。优先队列是队列的一种不过它可以按照自定义的一种方式数据的优先级来对队列中的数据进行动态的排序 每次的push和pop操作队列都会动态的调整以达到我们预期的方式来存储。 例如我们常用的操作就是对数据排序优先队列默认的是数据大的优先级高 所以我们无论按照什么顺序push一堆数最终在队列里总是top出最大的元素。  优先队列的常用操作 优先级队列支持的操作 q.empty()         如果队列为空则返回true否则返回false q.size()            返回队列中元素的个数 q.pop()             删除队首元素但不返回其值 q.top()             返回具有最高优先级的元素值但不删除该元素 q.push(item)     在基于优先级的适当位置插入新元素 用法 示例将元素53246依次push到优先队列中print其输出。 1. 标准库默认使用元素类型的操作符来确定它们之间的优先级关系。 priority_queueint pq; 通过操作符可知在整数中元素大的优先级高。 故示例1中输出结果为 6 5 4 3 2   2. 数据越小优先级越高 priority_queueint, vectorint, greaterint pq; 其中 第二个参数为容器类型。 第二个参数为比较函数。 故示例2中输出结果为2 3 4 5 6 3. 自定义优先级重载比较符号 重载默认的 符号 struct node {friend bool operator (node n1, node n2){return n1.priority n2.priority;}int priority;int value; }; 这时需要为每个元素自定义一个优先级。 注重载号会编译出错因为标准库默认使用元素类型的操作符来确定它们之间的优先级关系。 而且自定义类型的操作符与操作符并无直接联系 #includeiostream #includefunctional #includequeue using Namespace stdnamespace std; struct node {friend bool operator (node n1, node n2){return n1.priority n2.priority;}int priority;int value; }; int main() {const int len 5;int i;int a[len] {3,5,9,6,2};//示例1priority_queueint qi;for(i 0; i len; i)qi.push(a[i]);for(i 0; i len; i){coutqi.top() ;qi.pop();}coutendl;//示例2priority_queueint, vectorint, greaterint qi2;for(i 0; i len; i)qi2.push(a[i]);for(i 0; i len; i){coutqi2.top() ;qi2.pop();}coutendl;//示例3priority_queuenode qn;node b[len];b[0].priority 6; b[0].value 1; b[1].priority 9; b[1].value 5; b[2].priority 2; b[2].value 3; b[3].priority 8; b[3].value 2; b[4].priority 1; b[4].value 4; for(i 0; i len; i)qn.push(b[i]);cout优先级\t值endl;for(i 0; i len; i){coutqn.top().priority\tqn.top().valueendl;qn.pop();}return 0; } 先级队列可以用向量(vector)或双向队列(deque)来实现(注意list container 不能用来实现queue因为list 的迭代器不是任意存取iterator而pop 中用到堆排序时是要求randomaccess iterator 的!) priority_queuevectorint, lessint pq1; // 使用递增lessint函数对象排序 priority_queuedequeint, greaterint pq2; // 使用递减greaterint函数对象排序 其成员函数有“判空(empty)” 、“尺寸(Size)” 、“栈顶元素(top)” 、“压栈(push)” 、“弹栈(pop)”等。 例  1 #include iostream  2 #include queue   3 using namespace std;  4    5 class T {  6 public:  7     int x, y, z;   8     T(int a, int b, int c):x(a), y(b), z(c)  9     {  10     } 11 }; 12 bool operator  (const T t1, const T t2)  13 { 14     return t1.z  t2.z; // 按照z的顺序来决定t1和t2的顺序 15 }  16 main() 17 {  18     priority_queueT q;  19     q.push(T(4,4,3));  20     q.push(T(2,2,5));  21     q.push(T(1,5,4));  22     q.push(T(3,3,6));  23     while (!q.empty())  24     {  25         T t  q.top();  26         q.pop();  27         cout  t.x     t.y     t.z  endl;  28     }  29     return 1;  30 }       输出结果为(注意是按照z的顺序从大到小出队的)        3 3 6        2 2 5        1 5 4        4 4 3       再看一个按照z的顺序从小到大出队的例子  1 #include iostream   2 #include queue   3 using namespace std;   4 class T   5 {   6 public:   7     int x, y, z;   8     T(int a, int b, int c):x(a), y(b), z(c)   9     { 10     }  11 };  12 bool operator  (const T t1, const T t2)  13 {  14     return t1.z  t2.z;  15 }  16 main()  17 {  18     priority_queueT, vectorT, greaterT  q;  19     q.push(T(4,4,3));  20     q.push(T(2,2,5));  21     q.push(T(1,5,4));  22     q.push(T(3,3,6));  23     while (!q.empty())  24     {  25         T t  q.top();  26         q.pop();  27         cout  t.x     t.y     t.z   endl;  28     }  29     return 1;  30 }       输出结果为        4 4 3        1 5 4        2 2 5        3 3 6       如果我们把第一个例子中的比较运算符重载为 bool operator (const T t1, const T t2) { return t1.z t2.z; // 按照z的顺序来决定t1和t2的顺序} 则第一个例子的程序会得到和第二个例子的程序相同的输出结果。
http://www.yutouwan.com/news/314228/

相关文章:

  • 龙华网站建设公司直接用源码做网站盗版吗
  • 网站在百度搜索不到seo网站排名优化服务
  • 加盟的网站建设用户体验网站
  • 直播平台推荐深圳企业网站seo
  • 建设网站构成国外网站建设平台
  • 基于jsp企业网站开发设计答辩ppt电商网站建设制作
  • 东莞网站建设_东莞网页设计】大数据营销平台有哪些
  • 广州黄浦区建设局网站wordpress商城版
  • 关键词带淘宝的网站不收录建设银行企业网银网站无法打开
  • 张家界seo网站优化娄底网站建设企业
  • 衡水做网站哪家好淘宝购买网站建设
  • 教育培训学校网站建设策划国外在线设计平台
  • 闸北区网站建设求个网站或者软件
  • 企业网站建设的目的和意义如何使用win2008iis建设网站
  • 扁平化资讯网站模板wordpress slider插件下载
  • 网站开发经验wordpress 条件查询
  • 新手学做免费网站软件好宣传册设计与制作用什么软件
  • 网站信息内容建设责任制落实情况福建建设执业注册中心网站
  • 南宁网站建设公司怎么赚钱公众号开发者密码多长时间生效
  • 无域名网站 能否被百度微信小程序网站建设方案
  • 长春火车站需要核酸检测报告吗科技型中小企业服务平台
  • 宠物店网站建设方案湘潭做网站价格 d磐石网络
  • 有哪些网站免费做推广创业做网站需要哪些必备条件
  • 网站制作团队英德市网站建设
  • 宁陵县网站seo房地产最新消息三个不低于
  • 广州市住房和城乡建设局网站首页桂林工作网招聘
  • 知识产权网站开发品牌建设完整版
  • 网站用哪些系统做的比较好用wordpress轩小程序
  • 天河网站建设推广创业网站怎么做的
  • 东莞网络网站建设wordpress会员推广