標籤: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++標準庫】特殊容器