91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
亚东县| 盱眙县| 大田县| 嘉善县| 怀集县| 富源县| 拉孜县| 望谟县| 蕉岭县| 新闻| 民勤县| 若尔盖县| 神农架林区| 霍林郭勒市| 河东区| 肥东县| 开阳县| 怀来县| 栾川县| 吉首市| 青川县| 望都县| 高阳县| 平顺县| 启东市| 盐山县| 石河子市| 汤原县| 桦甸市| 和顺县| 清苑县| 博客| 竹北市| 达州市| 潜山县| 香河县| 迭部县| 永新县| 漠河县| 城口县| 高安市|