C++ priority_queue::pop() 函式



C++ 的std::priority_queue::pop() 函式用於從佇列中移除優先順序最高的元素。它不返回值,而是就地修改佇列,並將 priority_queue 的大小減一。此函式的時間複雜度為常數,即 O(1)。

當我們嘗試對空的 priority_queue 呼叫 pop() 函式時,會導致未定義的行為。

語法

以下是 std::priority_queue::pop() 函式的語法。

void pop();

引數

此函式不接受任何引數。

返回值

此函式不返回值。

示例

讓我們看下面的例子,我們將演示 pop() 函式的使用。

#include <iostream>
#include <queue>
int main()
{
    std::priority_queue<int> x;
    x.push(1);
    x.push(22);
    x.push(333);
    std::cout << "Before popping top element : " << x.top() << std::endl;
    x.pop();
    std::cout << "After popping top element: " << x.top() << std::endl;
    return 0;
}

輸出

以上程式碼的輸出如下:

Before popping top element : 333
After popping top element: 22

示例

考慮以下示例,我們將彈出 priority_queue 中的所有元素。

#include <iostream>
#include <queue>
int main()
{
    std::priority_queue<int> a;
    a.push(1);
    a.push(22);
    a.push(333);
    std::cout << "Elements in the priority_queue:" << std::endl;
    while (!a.empty()) {
        std::cout << a.top() << " ";
        a.pop();
    }
    std::cout << std::endl;
    return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

Elements in the priority_queue:
333 22 1 

示例

在以下示例中,我們將演示如何處理 priority_queue 為空的情況。

#include <iostream>
#include <queue>
int main()
{
    std::priority_queue<int> a;
    if (!a.empty()) {
        std::cout << "Before popping top element: " << a.top() << std::endl;
        a.pop();
    } else {
        std::cout << "Priority_queue is empty." << std::endl;
    }
    return 0;
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

Priority_queue is empty.
priority_queue.htm
廣告