public member function
<queue>

std::priority_queue::push

void push (const value_type& val);
void push (const value_type& val);void push (value_type&& val);
插入元素
priority_queue 中插入一个新元素。新元素的内容被初始化为 val

此成员函数有效地调用了*底层容器*对象的 push_back 成员函数,然后通过调用包含容器所有元素的范围上的 push_heap 算法来将其重新排序到*堆*中的位置。

参数

val
待插入元素将被初始化的值。
成员类型 value_type 是容器中元素的类型(定义为第一个类模板参数 T 的别名)。

返回值



示例

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


复杂度

对*底层容器*调用一次 push_back,并对包含*底层容器*所有元素的范围调用一次 push_heap

数据竞争

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

异常安全

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

另见