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

溫馨提示×

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
翼城县| 黎平县| 贺兰县| 新干县| 吉安县| 浦东新区| 称多县| 田东县| 灵璧县| 甘肃省| 乌鲁木齐市| 蓬溪县| 阿拉尔市| 牡丹江市| 辰溪县| 夹江县| 肃南| 安溪县| 合阳县| 资讯| 上林县| 水城县| 开阳县| 公安县| 永泰县| 鄂尔多斯市| 繁昌县| 手机| 合川市| 广水市| 宝坻区| 拉萨市| 建阳市| 清原| 上饶市| 赣榆县| 墨竹工卡县| 遂平县| 林周县| 财经| 邯郸县|