中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
饶平县| 太康县| 和林格尔县| 民勤县| 分宜县| 吉首市| 漯河市| 长岛县| 广昌县| 穆棱市| 大洼县| 太白县| 余干县| 葵青区| 蓬莱市| 乌恰县| 嘉善县| 安塞县| 临猗县| 修水县| 静宁县| 察哈| 徐水县| 布拖县| 锦屏县| 锡林郭勒盟| 册亨县| 陇川县| 道孚县| 灵武市| 奎屯市| 盐津县| 阳朔县| 福建省| 慈溪市| 淳安县| 宜兴市| 平谷区| 个旧市| 宿迁市| 华阴市|