public member function
<queue>

std::priority_queue::pop

void pop();
移除頂部元素
移除 priority_queue 頂部的元素,使其 size 減一。被移除的元素是值最高的元素。

在呼叫 priority_queue::top 成員函式來獲取頂部元素的值後,可以將其彈出。

此成員函式實際上呼叫了 pop_heap 演算法來保持 priority_queue 的*堆屬性*,然後呼叫底層容器物件的 pop_back 成員函式來移除元素。

這將呼叫被移除元素的解構函式。

引數



返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// priority_queue::push/pop
#include <iostream>       // std::cout
#include <queue>          // std::priority_queue

int main ()
{
  std::priority_queue<int> mypq;

  mypq.push(30);
  mypq.push(100);
  mypq.push(25);
  mypq.push(40);

  std::cout << "Popping out elements...";
  while (!mypq.empty())
  {
     std::cout << ' ' << mypq.top();
     mypq.pop();
  }
  std::cout << '\n';

  return 0;
}

輸出
Popping out elements... 100 40 30 25


複雜度

呼叫一次 pop_heap 和一次對*底層容器*呼叫 pop_back

資料競爭

容器及其最多所有包含的元素都會被修改。

異常安全

提供與對底層容器物件執行的操作相同的保證級別。

另見