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

資料競爭

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

異常安全

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

另見