亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c++ priority_queue詳解

c++
小億
100
2024-01-05 16:19:58
欄目: 編程語言

priority_queue是C++ STL中的一種容器,它是一個按照優先級排序元素的隊列。優先級最高的元素(根據比較函數確定)總是位于隊列的最前面。

priority_queue的特點:

  1. 元素的順序是由比較函數決定的,默認情況下,元素以大根堆的形式排列,即根節點的值最大。
  2. 從priority_queue中取出元素時,總是取出優先級最高的元素。
  3. priority_queue底層實現通常是使用二叉堆。

priority_queue的使用步驟:

  1. 包含頭文件:#include
  2. 聲明一個priority_queue對象,指定元素類型和比較函數,比較函數可以是函數指針、函數對象或者lambda表達式。
  3. 向priority_queue中插入元素:push()函數。
  4. 從priority_queue中取出元素:top()函數。
  5. 刪除priority_queue中的元素:pop()函數。
  6. 判斷priority_queue是否為空:empty()函數。
  7. 獲取priority_queue中元素的個數:size()函數。

priority_queue的常用函數:

  1. push(element):將元素element插入priority_queue中。
  2. top():返回priority_queue中優先級最高的元素。
  3. pop():刪除priority_queue中優先級最高的元素。
  4. empty():判斷priority_queue是否為空。
  5. size():返回priority_queue中元素的個數。

示例代碼:

#include <iostream>
#include <queue>

int main() {
    // 聲明一個存放整數的priority_queue,默認為大根堆
    std::priority_queue<int> pq;

    // 插入元素
    pq.push(10);
    pq.push(30);
    pq.push(20);

    // 獲取優先級最高的元素
    std::cout << "Top element: " << pq.top() << std::endl;

    // 刪除優先級最高的元素
    pq.pop();

    // 判斷priority_queue是否為空
    if (pq.empty()) {
        std::cout << "Priority queue is empty." << std::endl;
    } else {
        std::cout << "Priority queue is not empty." << std::endl;
    }

    // 獲取priority_queue中元素的個數
    std::cout << "Size of priority queue: " << pq.size() << std::endl;

    return 0;
}

輸出結果:

Top element: 30
Priority queue is not empty.
Size of priority queue: 2

這是一個簡單的priority_queue的示例,演示了插入元素、獲取最高優先級元素、刪除最高優先級元素、判斷是否為空以及獲取元素個數的基本操作。實際使用中,可以根據需要自定義比較函數來實現不同的優先級順序。

0
祁阳县| 佳木斯市| 大同市| 图片| 高唐县| 岗巴县| 报价| 大石桥市| 深州市| 岳西县| 当阳市| 泽普县| 永仁县| 贞丰县| 杂多县| 阿合奇县| 和田县| 红河县| 泸溪县| 柘城县| 双峰县| 凤庆县| 莒南县| 台江县| 公主岭市| 蓬溪县| 赤峰市| 乡城县| 定襄县| 唐河县| 泰和县| 万年县| 陆良县| 桂东县| 沈丘县| 越西县| 崇左市| 博爱县| 平舆县| 都昌县| 任丘市|