天天看點

C++文法基礎--優先隊列--priority_queue

*優先隊列彈出資料是能夠按照隊列元素優先級的順序進行,而不是按照他們進入隊列的先後順序

*元素進入優先隊列時,沒有任何限制

*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;

}