關於C++ 中的queue(STL)用法

queue就是隊列,c++的STL(標準模板庫)裏的一個容器。當然隊列是可以通過用數組實現的,queue也是一種方法,使用queue的話需要添加頭文件queue,stdlib.h或者直接調用萬能頭文件 bits/stdc++.h 。

queue的常用基本操作

1、front():返回 queue 中第一個元素的引用。如果 queue 是常量,就返回一個常引用;如果 queue 爲空,返回值是未定義的。
2、back():返回 queue 中最後一個元素的引用。如果 queue 是常量,就返回一個常引用;如果 queue 爲空,返回值是未定義的。

3、push(const T& obj):在 queue 的尾部添加一個元素的副本。這是通過調用底層容器的成員函數 push_back() 來完成的。
4、push(T&& obj):以移動的方式在 queue 的尾部添加元素。這是通過調用底層容器的具有右值引用參數的成員函數 push_back() 來完成的。
5、pop():刪除 queue 中的第一個元素。
6、size():返回 queue 中元素的個數。
7、empty():如果 queue 中沒有元素的話,返回 1,否則返回0。

8、emplace():用傳給 emplace() 的參數調用 T 的構造函數,在 queue 的尾部生成對象。
9、swap(queueT &other_q):將當前 queue 中的元素和參數 queue 中的元素交換。它們需要包含相同類型的元素。也可以調用全局函數模板 swap() 來完成同樣的操作。
參考博文

例如:

#include<bits/stdc++.h>
using namespace std;
struct T{
	int x,y;
}node,top;
//定義一個結構體類型的變量 
int main(){
	bool b;
	int sizeQ; 
	queue<T> Q;//創建一個隊列,是結構體T類型的變量
	node.x=1;
	node.y=2;
	Q.push(node);//把node入隊 
	cout<<"返回Q的size:"<<Q.size()<<endl; 
	cout<<"返回Q是否爲空:"<<Q.empty()<<endl;
	top=Q.front();
	cout<<"返回第一個元素的引用:"<<top.x<<" "<<top.y<<endl;
	top=Q.back();
	cout<<"返回最後一個元素的引用:"<<top.x<<" "<<top.y<<endl;
	Q.pop();//刪除隊列的第一個元素 
	return 0;
} 

運行結果:

返回Q的size:1
返回Q是否爲空:0
返回第一個元素的引用:1 2
返回最後一個元素的引用:1 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章