Queue簡介 queue是隊列容器,是一種“先進先出”的容器。 queue是簡單地裝飾deque容器而成為另外的一種容器。 #include <queue> 1.queue對象的預設構造 2.queue的push()與pop()方法 queue.push(elem); //往隊尾添加元素 queu ...
Queue簡介
- queue是隊列容器,是一種“先進先出”的容器。
- queue是簡單地裝飾deque容器而成為另外的一種容器。
- #include <queue>
1.queue對象的預設構造
queue採用模板類實現,queue對象的預設構造形式:queue<T> queT; 如: queue<int> queInt; //一個存放int的queue容器。 queue<float> queFloat; //一個存放float的queue容器。 ... //尖括弧內還可以設置指針類型或自定義類型。
2.queue的push()與pop()方法
- queue.push(elem); //往隊尾添加元素
- queue.pop(); //從隊頭移除第一個元素
#include<iostream> using namespace std; #include <queue> void objPlay2() { queue<int> queInt; queInt.push(1); queInt.push(3); queInt.push(5); queInt.push(7); queInt.push(9); queInt.pop(); queInt.pop();//此時queInt存放的元素是5, 7, 9 } int main() { objPlay2(); return 0; }
3.queue對象的拷貝構造與賦值
- queue(const queue &que); //拷貝構造函數
- queue& operator=(const queue &que); //重載等號操作符
void objPlay3() { queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); queue<int> queIntB(queIntA); //拷貝構造 queue<int> queIntC; queIntC = queIntA; //賦值 }
4.queue的數據存取
- queue.back(); //返回最後一個元素
- queue.front(); //返回第一個元素
void objPlay4() { queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); int iFront = queIntA.front(); //獲取隊列的頭元素,1 int iBack = queIntA.back(); //獲取隊列的尾元素 ,9 queIntA.front() = 11; //11 queIntA.back() = 19; //19 }
5.queue的大小
- queue.empty(); //判斷隊列是否為空
- queue.size(); //返回隊列的大小
void objPlay5() { queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); if (!queIntA.empty()) { int iSize = queIntA.size(); //隊列中有五個元素 } }
以上所有代碼整理:
#include<iostream> using namespace std; #include <queue> void objPlay2() { queue<int> queInt; queInt.push(1); queInt.push(3); queInt.push(5); queInt.push(7); queInt.push(9); queInt.pop(); queInt.pop();//此時queInt存放的元素是5, 7, 9 } void objPlay3() { queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); queue<int> queIntB(queIntA); //拷貝構造 queue<int> queIntC; queIntC = queIntA; //賦值 } void objPlay4() { queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); int iFront = queIntA.front(); //獲取隊列的頭元素,1 int iBack = queIntA.back(); //獲取隊列的尾元素 ,9 queIntA.front() = 11; //11 queIntA.back() = 19; //19 } void objPlay5() { queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); if (!queIntA.empty()) { int iSize = queIntA.size(); //隊列中有五個元素 } } int main() { objPlay2(); objPlay3(); objPlay4(); objPlay5(); return 0; }