天天看點

STL庫之queue隊列使用

隊列是一種特殊的線性表,特殊之處在于它隻允許在表的前端(front)進行删除操作,而在表的後端(rear)進行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行删除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。

隊列的資料元素又稱為隊列元素。在隊列中插入一個隊列元素稱為入隊,從隊列中删除一個隊列元素稱為出隊。因為隊列隻允許在一端插入,在另一端删除,是以隻有最早進入隊列的元素才能最先從隊列中删除,故隊列又稱為先進先出(FIFO—first in first out)線性表。

如同排隊一樣,隊列是一種先入先出的資料結構

在STL實作了這一資料結構。

也相應的實作了隊列操作方法,看代碼了解的更加直覺

queue這個資料結構主要應用于廣度優先搜尋,優先隊列中,後續整理。

#include<iostream>
#include<queue>

using namespace std;

int main()
{
	//初始化一個int泛型的隊列 
	queue<int> q;
	int a[5] = {1,2,3,4,5};
	
	//将資料壓入隊列 
	q.push(a[0]);
	q.push(a[1]);
	q.push(a[2]);
	q.push(a[3]);
	q.push(a[4]);
	
	//輸出隊列元素個數
	cout<<"元素個數為:"<<q.size()<<endl; 
	 
	//判斷隊列是否為空 
	while(!q.empty())
	{ 
		//q.front()取隊頭元素 
		cout<<"取自隊頭=====》"<<q.front()<<endl;
		//q.back()取隊尾元素
		cout<<"取自隊尾=====》"<<q.back()<<endl; 
		//彈出隊頭元素 
		q.pop();
	}
	return 0;	
} 
           

繼續閱讀