*优先队列弹出数据是能够按照队列元素优先级的顺序进行,而不是按照他们进入队列的先后顺序
*元素进入优先队列时,没有任何限制
*STL中的priority_queue(头文件#include<queue>)默认情况下假定最大的元素也具有最大的优先级
Example:
int main()
{
priority_queue<int> pq;
pq.push(5);
pq.push(10);
pq.push(2);
cout<<pq.top();//10
return 0;
}
利用优先队列的特性,可以进行排序
Example:
int main()
{
int arr[]{1,3,9,2,4};
priority_queue<int> pq;
for(int x:arr)
{
pq.push(x); //把数组所有元素入队
}
for(int i=4;i>=0;i--)
{
arr[i]=pq.top(); //按优先级岀队
pq.pop();
}
for(int x:arr)
{
cout<<x<<ends; //1 2 3 4 9
}
return 0;
}
*元素进入优先队列时,没有任何限制
*STL中的priority_queue(头文件#include<queue>)默认情况下假定最大的元素也具有最大的优先级
Example:
int main()
{
priority_queue<int> pq;
pq.push(5);
pq.push(10);
pq.push(2);
cout<<pq.top();//10
return 0;
}
利用优先队列的特性,可以进行排序
Example:
int main()
{
int arr[]{1,3,9,2,4};
priority_queue<int> pq;
for(int x:arr)
{
pq.push(x); //把数组所有元素入队
}
for(int i=4;i>=0;i--)
{
arr[i]=pq.top(); //按优先级岀队
pq.pop();
}
for(int x:arr)
{
cout<<x<<ends; //1 2 3 4 9
}
return 0;
}