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

溫馨提示×

c++優先隊列怎么使用

c++
小億
100
2023-08-01 19:30:52
欄目: 編程語言

C++中的優先隊列是一種特殊的隊列,其中的元素按照一定的優先級進行排序。元素的優先級由元素自身的比較函數確定。

下面是使用C++優先隊列的一般步驟:

  1. 包含頭文件:#include <queue>

  2. 聲明一個優先隊列對象:priority_queue<data_type> pq;

  • data_type是隊列中元素的類型,可以是基本數據類型或自定義數據類型。
  1. 添加元素到隊列中:pq.push(element);

  2. 訪問隊列中的頂部元素:top_element = pq.top();

  • top_element是隊列中的最高優先級元素。
  1. 刪除隊列中的頂部元素:pq.pop();
  • 刪除隊列中的最高優先級元素,并將下一個最高優先級元素移至隊列頂部。

注意事項:

  • 默認情況下,優先隊列按降序排列,即最大的元素位于隊列的頂部。如果要按升序排列,則需要自定義比較函數。

  • 如果使用自定義數據類型作為優先隊列的元素,需要重載比較函數(operator< 或 operator>())。

  • 優先隊列可以包含重復元素。

以下是一個使用優先隊列的例子,其中存儲自定義的Book結構體,按照價格從高到低進行排序:

#include <iostream>
#include <queue>
using namespace std;
struct Book {
string title;
double price;
};
// 自定義比較函數
struct CompareBooks {
bool operator()(const Book& b1, const Book& b2) {
return b1.price < b2.price;
}
};
int main() {
priority_queue<Book, vector<Book>, CompareBooks> pq;
// 添加元素
pq.push({"Book 1", 9.99});
pq.push({"Book 2", 7.99});
pq.push({"Book 3", 12.99});
// 訪問隊列中的頂部元素
Book topBook = pq.top();
cout << "Top Book: " << topBook.title << ", Price: " << topBook.price << endl;
// 刪除隊列中的頂部元素
pq.pop();
// 訪問新的頂部元素
topBook = pq.top();
cout << "Top Book: " << topBook.title << ", Price: " << topBook.price << endl;
return 0;
}

輸出結果:

Top Book: Book 3, Price: 12.99
Top Book: Book 1, Price: 9.99

0
双流县| 武平县| 五寨县| 安龙县| 镇宁| 砚山县| 安康市| 延长县| 天全县| 五峰| 开江县| 霍山县| 策勒县| 苍梧县| 南靖县| 青神县| 专栏| 锡林郭勒盟| 大冶市| 通渭县| 额济纳旗| 阳江市| 丰都县| 小金县| 屏东县| 达拉特旗| 锦州市| 阳春市| 莱芜市| 义乌市| 闽侯县| 德钦县| 临城县| 陇西县| 嘉黎县| 克东县| 万载县| 禄丰县| 嵊州市| 靖西县| 项城市|