C++ 中"priority_queue" 優(yōu)先級(jí)隊(duì)列實(shí)例詳解
C++ 中"priority_queue" 優(yōu)先級(jí)隊(duì)列實(shí)例詳解
1. 簡介
標(biāo)準(zhǔn)庫隊(duì)列使用了先進(jìn)先出(FIFO)的存儲(chǔ)和檢索策略. 進(jìn)入隊(duì)列的對(duì)象被放置在尾部, 下一個(gè)被取出的元素則取自隊(duì)列的首部. 標(biāo)準(zhǔn)庫提供了兩種風(fēng)格的隊(duì)列: FIFO 隊(duì)列(FIFO queue, 簡稱 queue), 以及優(yōu)先級(jí)隊(duì)列(priority queue).
priority_queue 允許用戶為隊(duì)列中存儲(chǔ)的元素設(shè)置優(yōu)先級(jí). 這種隊(duì)列不是直接將新元素放置在隊(duì)列尾部, 而是放在比它優(yōu)先級(jí)低的元素前面. 標(biāo)準(zhǔn)庫默認(rèn)使用元素類型的 "<" 操作符來確定它們之間的優(yōu)先級(jí)關(guān)系. 如需改變大小關(guān)系, 需要使用std::greater<temple>函數(shù), 在functional頭文件中.
2. 代碼
#include <iostream> // std::cout
#include <queue> // std::priority_queue
#include <vector> // std::vector
#include <functional> // std::greater
int main ()
{
int myints[]= {10,60,50,20};
std::priority_queue<int> intPQueue1 (myints, myints+4);
std::priority_queue<int, std::vector<int>, std::greater<int> >
intPQueue2 (myints,myints+4);
std::cout << "less than: " << std::endl;
while( !intPQueue1.empty() ){
int pvalue = intPQueue1.top();
std::cout << pvalue << " ";
intPQueue1.pop();
}
std::cout << std::endl;
std::cout << "bigger than: " << std::endl;
while( !intPQueue2.empty() ){
int pvalue = intPQueue2.top();
std::cout << pvalue << " ";
intPQueue2.pop();
}
std::cout << std::endl;
return 0;
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
UE4 Unlua 調(diào)用異步藍(lán)圖節(jié)點(diǎn)AIMoveTo函數(shù)示例詳解
這篇文章主要為大家介紹了UE4 Unlua 調(diào)用AIMoveTo函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明
下面小編就為大家?guī)硪黄獙?duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12

