這只是寫一下自己遇到的問題
#include<queue>//先包含一個頭文件
priority_queue<int> queue;//定義一個優先隊列
默認從大到小排序,因爲是優先隊列呀
如果我們想從小到大排序就需要自定義排序函數了
bool operator > ( Node a,Node b) //這裏的參數如果是Node* 並不知道爲什麼
{
return a.num > b.num; //自定義排序從小到大
};
這個排序函數寫在main函數之前,這裏Node是我自定義的結構體,用結構體裏某個成員變量的比較結果作爲排序依據。這裏如果參數爲Node*會報錯,我也不知爲什麼,對於運算符重載的知識還不瞭解。如果你想對簡單的類型int之類排序,我建議你用數組然後用sort排序方法。
寫了自定義排序函數後還要包含一個頭文件
#include<functional>
對應程序中優先隊列的聲明
priority_queue<Node,vector<Node>,greater<Node>> queue; //優先隊列