关于优先队列的使用:
每次从队列中取出的是具有最高优先权的元素
priority_queue<int>que;//采用 默认优先级构造队列
默认从高到低排序
采用头文件 “functional”内定义优先级
priority_queue<int,vector<>,greater<int> >que;从低到高排序
注意“>>”会被认为错误,
这是右移运算符,所以这里用空格号隔开
采用 结构体自定义优先级
priority_queue<int,vector<>,cmp1>que;
struct cmp1{
bool operator ()(int &a,int &b){
return a>b;//最小值优先
}
};
优先队列中常用的 函数:
pq.push(elem);//添加元素
pq.pop();//删除顶部元素
pq.empty();//判断是否为空,空返回true否则返回false
pq.top();//返回队顶元素
pq.size();//返回存储的数据的个数
每次从队列中取出的是具有最高优先权的元素
priority_queue<int>que;//采用 默认优先级构造队列
默认从高到低排序
采用头文件 “functional”内定义优先级
priority_queue<int,vector<>,greater<int> >que;从低到高排序
注意“>>”会被认为错误,
这是右移运算符,所以这里用空格号隔开
采用 结构体自定义优先级
priority_queue<int,vector<>,cmp1>que;
struct cmp1{
bool operator ()(int &a,int &b){
return a>b;//最小值优先
}
};
优先队列中常用的 函数:
pq.push(elem);//添加元素
pq.pop();//删除顶部元素
pq.empty();//判断是否为空,空返回true否则返回false
pq.top();//返回队顶元素
pq.size();//返回存储的数据的个数