<queue>
只能訪問queue<T>容器適配器的第一個和最后一個元素。只能在容器的末尾添加新元素,只能從頭部移除元素。FIFO(先進先出)
1.初始化
需要頭文件<queue>
queue<int>que;
2.成員函數
C++隊列Queue類成員函數如下:
back()返回最后一個元素
empty()如果隊列空則返回真
front()返回第一個元素
pop()刪除第一個元素
push()在末尾加入一個元素
size()返回隊列中元素的個數
3.queue 的基本操作舉例如下:
queue入隊,如例:q.push(x); 將x 接到隊列的末端。
queue出隊,如例:q.pop(); 彈出隊列的第一個元素,注意,並不會返回被彈出元素的值。
訪問queue隊首元素,如例:q.front(),即最早被壓入隊列的元素。
訪問queue隊尾元素,如例:q.back(),即最后被壓入隊列的元素。
判斷queue隊列空,如例:q.empty(),當隊列空時,返回true。
訪問隊列中的元素個數,如例:q.size()
queue隊列中沒有clear()操作:
因此清空隊列有幾種方法:
第一種:直接用空的隊列對象賦值
queue<int>q1 q1=queue<int>();
第二種:遍歷出隊列
while(!q.empty())q.pop();
第三種:使用swap,這種是最高效的,定義clear,保持STL容器的標准
void clear(queue<int>& q) { queue<int>empty; swap(empty,q); }
測試代碼
#include<queue> #include<iostream> using namespace std; void clear(queue<int>&q) { queue<int>empty; swap(empty,q); } int main() { queue<int>q; q.push(1); //在隊列末尾依次插入1 2 3 q.push(2); q.push(3); int u=q.back(); //返回隊列中最后一個元素 cout<<"隊列最后一個元素為:"<<u<<endl; int v=q.front(); //返回隊列中第一個元素 cout<<"隊列第一個元素為:"<<v<<endl; q.pop(); //刪除第一個元素 v=q.front(); cout<<"隊列第一個元素為:"<<v<<endl; int size=q.size(); //size返回元素個數 cout<<"隊列中存在"<<size<<"個元素"<<endl; cout<<"判斷隊列是否為空,空輸出1 否則輸出1:"<<endl; int flag=q.empty(); //判斷隊列是否為空,為空返回1,否則返回0 cout<<flag<<endl; //情況queue的三種方法 /* q=queue<int>();*/ /* while(!q.empty()) q.pop();*/ clear(q); //queue中沒有clear操作,用函數定義clear函數,使用swap cout<<q.empty()<<endl; return 0; }