STL--关于权重问题的解决
来源:互联网 发布:魔神英雄传 知乎 编辑:程序博客网 时间:2024/06/05 03:49
在A star算法中就出现了权重问题,是数据结构中涉及到权重或者说是优先级的就是优先队列了,为此分析一下,这类问题的共性。
在STL中queue头文件中,有priority_queue的类
这是优先队列,在涉及权重问题时可以使用
一般的C++这个类使用时,
1、
priority_queue pq;
这时,库默认是将数值最大的作为优先级最高的输出
2、
priority_queue<int, vector<int>, greater<int> >pq;
这是数值越小优先级越高。
3、就是自定义优先级
这里需要了解重载操作符
保留字type operator 重载符 (形参表)
所在在自己创建的类里面加上重载函数
基本模型为
typedef struct p{ string name; int priority; bool operator < (const p a) const //模型语句 { return priority<a.priority; //priority 越大优先级越高 }}P;
测试代码
为
#include <queue>#include <string>#include <algorithm>#include <iostream>using namespace std;typedef struct p{ string name; int priority; bool operator < (const p a) const { return priority<a.priority; }}P;int main(){ priority_queue <P> g; P i; i.name="gff"; i.priority=3; g.push(i); i.name="fl"; i.priority=5; g.push(i); i.name="nust"; i.priority=1; g.push(i); while(!g.empty()) { cout<<g.top().name<<" "<<g.top().priority<<endl; g.pop(); }}
输出为
还有一个问题,对于自定义的权重类型,如果是相同权重,priority_queue是如何选择的
将每个入队列的对象的优先级都变为相同,
好像输出没有什么规律,
暂时认为是随机的,
有待补充
0 0
- STL--关于权重问题的解决
- 关于百度权重的问题猜想
- 关于最新Google域名权重的问题
- 关于权重的理解
- 关于Android中权重问题
- 关于css样式的权重
- 关于随机数权重的实现
- CSS选择器的权重问题
- 关于layout_weight(权重问题)小议
- CSS权重的问题:选择器权重值的计算
- 关于权重
- 关于STL的_Construct实现问题
- 【原创】关于STL::_Lockit的问题
- 关于STL erase的iterator失效问题
- 关于STL erase的iterator失效问题
- 关于STL中string的拷贝问题
- 关于自学和找工作的权重
- 关于linearLaout的权重,随手笔记
- Android自定义弹窗效果
- MySQL 用户权限详细汇总
- oc003-set和get方法
- Palindrome Linked List
- IOS--UI--LessonParse 数据解析 XML JSON
- STL--关于权重问题的解决
- EventBus使用详解
- Socket编程《三》
- 【POJ】【3624】
- [leetcode] Trapping Rain Water
- Redis命令小细节
- oc004---oc的继承
- 贝叶斯决策
- HDU 2037 今年暑假不AC(贪心)