queue容器
-
隊列是一種容器適配器,專門用于在FIFO上下文(先進先出)中操作,其中從容器一端插入元素,另一端 提取元素。
-
隊列作為容器適配器實現,容器適配器即將特定容器類封裝作為其底層容器類,queue提供一組特定的 成員函數來訪問其元素。元素從隊尾入隊列,從隊頭出隊列。
-
底層容器可以是標準容器類模板之一,也可以是其他專門設計的容器類。該底層容器應至少支持以下操 作
empty:檢測隊列是否為空 size:返回隊列中有效元素的個數front:返回隊頭元素的引用 back:返回隊尾元素的引用push_back:在隊列尾部入隊列 pop_front:在隊列頭部出隊列
-
標準容器類deque和list滿足了這些要求。默認情況下,如果沒有為queue實例化指定容器類,則使用標 準容器deque。
queue沒有迭代器
queue所有元素的進出都必須符合“先進先出”的條件,只有queue的頂端元素,才有機會被外界取用,queue不提供遍歷功能,也不提供迭代器。
queue 對象的默認構造
- queue 采用模板類實現,
- queue 對象的默認構造形式:queuequeT; 如: queuequeInt; //一個存放 int 的 queue 容器。
- queuequeFloat; //一個存放 float 的 queue 容器。 queuequeString; //一個存放 string 的 queue 容器。
- … … //尖括號內還可以設置指針類型或自定義類型。
queue 的處理數據的方法
- queue.push(elem); //往隊尾添加元素
- queue.pop(); //從隊頭移除第一個元素
queue 對象的拷貝構造與賦值
- queue(constqueue&que); //拷貝構造函數
- queue&operator=(constqueue&que);//重載等號操作符
queue 的數據讀取操作
- queue.back(); //返回最后一個元素
- queue.front(); //返回第一個元素
queue 的大小
-
queue.empty(); //判斷隊列是否為空
-
queue.size(); //返回隊列的大小
#include<iostream>using namespace std; #include<queue>void test01() {queue<int>q;q.push(10); //往隊尾添加元素q.push(20);q.push(30);q.push(40);while (!q.empty()){cout << "隊頭:" << q.front() << endl;cout << "隊尾:" << q.back() << endl;//彈出隊頭元素q.pop();}cout << "size:" << q.size() << endl;}int main() {test01();system("pause");return 0; }