【C++標準庫】特殊容器

來源:互聯網
上載者:User

標籤:ace   技術   sed   div   apt   實現   priority   移除   .com   

特殊容器,又稱為容器適配器(Container Adapter),它們改造了標準STL容器,使之滿足特殊的要求。

Stack堆棧

使用stack時,需包含標頭檔<stack>

  • push()  將一個元素壓入棧內
  • pop()   從棧內移除下一個元素,但是並不返回它
  • top()         返回棧內下一個元素,但並不移除它。

如果stack內沒有元素,top()和pop()會導致不明確的行為,可採用size()或empty()來檢查容器是否為空白。

Queue隊列

Queue實現出了一個FIFO先進先出的結構,是一個典型的資料緩衝構造。使用時需包含標頭檔<queue>

  • push() 將一個元素入隊列
  • front()返回隊列中第一個元素,但不移除元素
  • back()返回隊列中最後一個元素,但不移除元素
  • pop()從隊列中移除一個元素,但不返回它

如果隊列內沒有元素,front(),back()和pop()將導致不明確的行為,可採用size()或empty()來檢查容器是否為空白。

Priority Queue優先順序隊列

priority queue內的元素根據優先順序進行了排序,使用時需包含標頭檔<queue>

  • push()將一個元素放入priority queue中
  • top()返回priority queue中第一個元素,但並不移除
  • pop()移除一個元素,但並不返回

如果優先順序隊列內沒有元素,top()和pop()會導致不明確的行為,可採用size()或empty()來檢查容器是否為空白。

#include <iostream>#include <queue>using namespace std;int main(){    priority_queue<float> q;    q.push(66.6);    q.push(22.2);    q.push(44.4);    cout << q.top() << endl;    q.pop();    cout << q.top() << endl;    q.pop();    q.push(11.1);    q.push(55.5);    q.push(33.3);    while (!q.empty())    {        cout << q.top() << endl;        q.pop();    }    return 0;}
View Code

 

【C++標準庫】特殊容器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.