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

数据竞争

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

异常安全

提供与对底层容器对象执行的操作相同的保证级别。

另见