Can you summarize the following document?
        
  優先佇列至少需要支援下述操作: 其它可選的操作:

  

  有許多簡單低效的實現。如用一個有序的陣列;或使用無序陣列,在每次取出時搜尋全集合,這種方法插入的效率為O(1),但取出時效率為 O(n)。

  出於效能考慮,優先佇列用堆來實現,具有"O"(log "n")時間複雜度的插入元素效能,"O"("n")的初始化構造的時間複雜度。如果使用自平衡二叉查詢樹,插入與刪除的時間複雜度為"O"(log "n"),構造二叉樹的時間複雜度為"O"("n" log "n")。  從計算複雜度的角度,優先順序佇列等價於排序演算法。  有一些特殊的堆為優先佇列的實現提供了額外的效能:二叉堆的插入與提取操作的時間複雜度為"O"(log "n"),並可以常量時間複雜度的peek操作。二項堆提供了幾種額外操作。斐波那契堆的插入、提取、修改元素優先順序等操作具有分攤常量時間複雜度,,但刪除操作的時間複雜度為"O"(log "n")。Brodal queue具有最糟糕情況下的常量複雜度但演算法相當複雜因而不具有實用性。  對於整型、浮點型等具有有限值域的元素的資料型別,優先佇列有更快的實現。

  優先佇列是電腦科學中的一類"容器資料型別"。  標準模板庫(STL)以及1998年的C++標準確定優先佇列是標準模板庫的容器介面卡模板。其實現了一個需要三個引數的最大優先佇列:比較函式(預設情況是小於函式less<T>)、儲存資料所用的容器型別(預設情況是向量vector<T>)以及指向序列開始和結束位置的兩個迭代器。和標準模板庫中其他的真實容器不同,優先佇列不允許使用其元素型別的迭代器,而必須使用優先佇列抽象資料型別的迭代器。標準模板庫還實現了支援隨機訪問資料容器的優先佇列--二叉最大堆。Boost C++庫也在其中實現了堆結構。  Python的heapq模組實現了在連結串列基礎上的二叉最小堆。  Java庫中的類實現了最小優先佇列。  Go庫中的container/heap模組實現了一個可以在任何相容資料結構上構建的最小堆。  PHP標準庫包括了一個優先佇列SplPriorityQueue。  蘋果的Core Foundation框架包括了一個最小堆結構CFBinaryHeap。

  優先佇列常用於作業系統的任務排程,也是貪心演算法的重要組成部分。
優先佇列是電腦科學中的一類抽象資料型別。優先佇列中的每個元素都有各自的優先順序,優先順序最高的元素最先得到服務;優先順序相同的元素按照其在優先佇列中的順序得到服務。優先佇列往往用堆來實現。