STL---對STL中的各類常用函式的小總結
阿新 • • 發佈:2019-01-05
priority_queue模板類有三個模板引數,下面介紹兩種:
//元素型別
priority_queue<int>q;
//容器型別
//1.從小到大排列
priority_queue<int,vector<int>,greater<int> >q;
//2.從大到小排列
priority_queue<int,vector<int>,less<int> >q;
優先佇列,使用示例:
priority_queue<int,vector<int>,greater<int> >q; for(int i=0;i<10;i++) { scanf("%d",&a); q.push(a); } while(!q.empty()) { x = q.top(); q.pop(); if(q.empty()) break; printf("%d ",x); }
如上述程式碼,若輸入:1,5,4,7,2,9,8,3,10,6這隨機排列的是個數
輸出時,直接就會輸出:1,2,3,4,5,6,7,8,9,10
若定義的時候,把greater換做less,
輸出時,直接就會輸出:10,9,8,7,6,5,4,3,2,1
這就是我理解的優先佇列的好處(PS:可能還有別的,如果我知道我會再加)。
q.push(a);即將a壓入優先佇列q,壓入之後也是會直接到按順序應該在的位置。
訪問優先佇列的隊首元素 q.top() ;
出佇列: q.pop();
入佇列: q.push(x);
判斷優先佇列是否為空: q.empty();