priority_queue
是C++標準庫中的一個容器適配器,它提供了一個優先級隊列的實現。下面是使用 priority_queue
的一些基本步驟:
包含頭文件:#include <queue>
定義優先級隊列:std::priority_queue
std::priority_queue<int> pq; // 創建一個默認的優先級隊列,默認是大頂堆
push()
函數將元素插入到優先級隊列中。pq.push(5); // 將元素5插入到優先級隊列中
pq.push(2); // 將元素2插入到優先級隊列中
pq.push(8); // 將元素8插入到優先級隊列中
top()
函數可以獲取隊列中的最高優先級元素。int topElement = pq.top(); // 獲取隊列中的最高優先級元素
pop()
函數可以刪除隊列中的最高優先級元素。pq.pop(); // 刪除隊列中的最高優先級元素
empty()
函數可以判斷隊列是否為空。bool isEmpty = pq.empty(); // 判斷隊列是否為空
需要注意的是,priority_queue
默認是一個大頂堆,即優先級高的元素會被放在隊列的前面。如果想要使用小頂堆,則可以通過傳遞一個比較函數來實現:
std::priority_queue<int, std::vector<int>, std::greater<int>> pq; // 創建一個小頂堆
上述代碼中,std::greater<int>
是一個比較函數對象,用于比較兩個元素的大小。