文章目錄
- 優先級隊列的定義
- 定義:
- 接口
- 頭文件
- 優先隊列和堆的關系
- 使用:
- 排序的規則
- 容器
- 仿函數
- 應用
- 隊列存指針問題:
優先級隊列的定義
定義:
黃色部分是仿函數
接口
頭文件
這里不需要包含其他的頭文件只需要使用隊列的頭文件就可以;
優先隊列和堆的關系
當優先隊列的容器是順序表時;優先隊列即為堆;
使用:
排序的規則
創建優先隊列按降序排列(大堆):
創建優先隊列按升序排列(小堆):
使用greater
容器
這里可以使用vector和dequeue’;原因:兩者都可實現下標的隨機訪問;但是dequeue的下表訪問的效率不高;
dequeue的前插和尾插的效率還可以;所以可以用來作為棧和隊列的容器;
仿函數
這里的仿函數可以是less和greater這里個在庫函數內都有不必自己寫;less和greater在庫函數內都沒有大寫而是小寫;
應用
作為函數參數
示例:sort()函數;
作為模板參數
示例:priority_queue 類的模板參數
** sort和priority_queue類的對比**:
隊列存指針問題:
出現這種情況的原因是:每次new的空間都是不確定的;無法判斷三者的指針大小;
解決方法:
自己創建一個類