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

溫馨提示×

c++優先隊列實現的方法是什么

c++
小億
90
2024-02-02 10:11:39
欄目: 編程語言

C++中可以使用std::priority_queue來實現優先隊列。std::priority_queue是一個模板類,位于<queue>頭文件中。

使用std::priority_queue時,需要先定義元素的類型,以及元素的比較方式。比較方式可以通過定義一個函數對象或者使用Lambda表達式來實現。

以下是一個使用std::priority_queue實現優先隊列的示例:

#include <iostream>
#include <queue>

int main() {
  // 定義元素類型為整數,比較方式為從大到小
  std::priority_queue<int, std::vector<int>, std::greater<int>> pq;

  // 插入元素
  pq.push(3);
  pq.push(1);
  pq.push(4);
  pq.push(1);
  pq.push(5);

  // 輸出隊列中的元素
  while (!pq.empty()) {
    std::cout << pq.top() << " ";
    pq.pop();
  }

  return 0;
}

輸出結果為:1 1 3 4 5

在上述示例中,我們定義了一個優先隊列pq,元素類型為整數,比較方式為從大到小。通過push函數向隊列中插入元素,通過top函數獲取隊列中的最高優先級元素,通過pop函數彈出隊列中的最高優先級元素。最終,我們通過循環輸出隊列中的元素。

需要注意的是,std::priority_queue默認使用的是std::less作為比較方式,即從大到小的順序。如果需要從小到大的順序,可以使用std::greater作為比較方式。

0
仁寿县| 南陵县| 和林格尔县| 邹城市| 云浮市| 都江堰市| 九寨沟县| 青海省| 蓬莱市| 抚松县| 当雄县| 漠河县| 合阳县| 泉州市| 丰顺县| 新沂市| 莎车县| 怀集县| 布尔津县| 绥芬河市| 云霄县| 奉化市| 柏乡县| 公主岭市| 柳河县| 环江| 察隅县| 岳阳县| 富锦市| 靖边县| 白山市| 淮滨县| 房山区| 郸城县| 玉屏| 铜山县| 万山特区| 九台市| 和龙市| 泸州市| 拜城县|