结构体的优先级重载:以优先队列来举例子
结构体使用优先队列时需要重载优先性
bool operator<(Node a, Node b){//返回true时,说明a的优先级低于b
//x值较大的Node优先级低(x小的Node排在队前)
//x相等时,y大的优先级低(y小的Node排在队前)
if( a.x== b.x ) return a.y> b.y;
return a.x> b.x;
}bool operator>( Node a, Node b ){//返回true,a的优先级大于b
//x大的排在队前部;x相同时,y大的排在队前部
if( a.x== b.x ) return a.y> b.y;
return a.x> b.x;
}
bool operator < (const node &a ) const{ //返回true时,说明a的优先级低于b
if(a.w == w) return a.v > v;return a.w > w;
}
优先队列根据优先级来排序,优先级高的排在前,优先级低的排在后。优先级高的数值小,优先级低的数值大,所以优先队列排序后里面的数值是从小到大排列,优先级是从高到低排列。
最后
以上就是辛勤电脑最近收集整理的关于结构体的优先级重载的全部内容,更多相关结构体内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复