欢迎来到天天文库
浏览记录
ID:8852179
大小:17.46 KB
页数:6页
时间:2018-04-09
《数据结构—优先队列》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、priority_queue,greater>优先队列按照由小到大顺序分类: 转载 Tech_ACM ACM_数据结构2012-07-2301:24 563人阅读 评论(0) 收藏 举报vectorclassn2lesscC++优先队列的基本使用方法 #include#include#includeusingnamespacestd;structnode{ friendbooloperator<(noden1
2、,noden2) { returnn1.priority"为从小打到排列 } intpriority; intvalue;};intmain(){ constintlen=5; inti; inta[len]={3,5,9,6,2}; //示例1 priority_queueqi;//普通的优先级队列,按从大到小排序 for(i=0;i3、push(a[i]); for(i=0;i,greater>qi2;//从小到大的优先级队列,可将greater改为less,即为从大到小 for(i=0;i4、n;i++) { cout<qn;//必须要重载运算符 nodeb[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[5、3].value=2; b[4].priority=1;b[4].value=4; for(i=0;i6、,按照某一个属性排序,就需要对比较函数进行重载小结一下:1、若是定义值类型对象,如: int main() { priority_queueqn; noden1; n1.a=9; noden2; n2.a=2; noden3; n3.a=50; qn.push(n1); qn.push(n2); qn.push(n3); int size=qn.size(); for(int i=0;i7、 cout<ne2.a) 8、 { return true; } else { return false; } } }; 其中在c++primer第三版中文版中关于操作符重载有如下描述:"程序员只能为类类型或枚举类型的操作数定义重载操作符我们可以这样来实现把重 载操作符声明为类的
3、push(a[i]); for(i=0;i,greater>qi2;//从小到大的优先级队列,可将greater改为less,即为从大到小 for(i=0;i4、n;i++) { cout<qn;//必须要重载运算符 nodeb[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[5、3].value=2; b[4].priority=1;b[4].value=4; for(i=0;i6、,按照某一个属性排序,就需要对比较函数进行重载小结一下:1、若是定义值类型对象,如: int main() { priority_queueqn; noden1; n1.a=9; noden2; n2.a=2; noden3; n3.a=50; qn.push(n1); qn.push(n2); qn.push(n3); int size=qn.size(); for(int i=0;i7、 cout<ne2.a) 8、 { return true; } else { return false; } } }; 其中在c++primer第三版中文版中关于操作符重载有如下描述:"程序员只能为类类型或枚举类型的操作数定义重载操作符我们可以这样来实现把重 载操作符声明为类的
4、n;i++) { cout<qn;//必须要重载运算符 nodeb[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[
5、3].value=2; b[4].priority=1;b[4].value=4; for(i=0;i6、,按照某一个属性排序,就需要对比较函数进行重载小结一下:1、若是定义值类型对象,如: int main() { priority_queueqn; noden1; n1.a=9; noden2; n2.a=2; noden3; n3.a=50; qn.push(n1); qn.push(n2); qn.push(n3); int size=qn.size(); for(int i=0;i7、 cout<ne2.a) 8、 { return true; } else { return false; } } }; 其中在c++primer第三版中文版中关于操作符重载有如下描述:"程序员只能为类类型或枚举类型的操作数定义重载操作符我们可以这样来实现把重 载操作符声明为类的
6、,按照某一个属性排序,就需要对比较函数进行重载小结一下:1、若是定义值类型对象,如: int main() { priority_queueqn; noden1; n1.a=9; noden2; n2.a=2; noden3; n3.a=50; qn.push(n1); qn.push(n2); qn.push(n3); int size=qn.size(); for(int i=0;i7、 cout<ne2.a) 8、 { return true; } else { return false; } } }; 其中在c++primer第三版中文版中关于操作符重载有如下描述:"程序员只能为类类型或枚举类型的操作数定义重载操作符我们可以这样来实现把重 载操作符声明为类的
7、 cout<ne2.a)
8、 { return true; } else { return false; } } }; 其中在c++primer第三版中文版中关于操作符重载有如下描述:"程序员只能为类类型或枚举类型的操作数定义重载操作符我们可以这样来实现把重 载操作符声明为类的
此文档下载收益归作者所有