<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
說到queue,大家一定會想到stack,同樣是簡單易用的資料結構之一。queue就是佇列的意思,像大家日常排隊一樣,先排的人先用。stack則是相反的,後來的先用。這就有了queue先進先出,stack後進先出的說法。
queue是一個很簡單的資料結構,但是卻非常實用,同時也是必不可少的,其它的資料結構都無法替代佇列。
queue常用於模仿佇列,在演演算法中比較常用的有單調佇列演演算法
相信看完本文就能上手使用了
queue<儲存的型別> 容器名
如:
儲存int型資料的佇列 queue q;
儲存double型資料的佇列 queue q;
儲存string型資料的佇列 queue q;
儲存結構體或者類的佇列 queue<結構體名> q;
back() //返回最後一個元素 empty() //如果佇列空則返回真 front() //返回第一個元素 pop() //刪除第一個元素 push() //在末尾加入一個元素 size() //返回佇列中元素的個數
範例程式碼:
#include<iostream>//c++標準標頭檔案,可以使用cout,cin等標準庫函數 #include<queue>//使用queue時需要的標頭檔案 using namespace std;//名稱空間,防止重名給程式帶來各種隱患,使用cin,cout,stack,map,set,vector,queue時都要使用 int main(){ queue<int> q;//定義一個int型別的佇列 q.push(1);//在隊尾新增元素1 q.push(2);//在隊尾新增元素2 q.push(3);//在隊尾新增元素3 cout<<"插入元素1、2、3後,目前佇列中的元素:1 2 3"<<endl; cout<<"q.size()="<<q.size()<<endl;//q.size()檢視目前佇列中的元素個數 cout<<"q.empty()="<<q.empty()<<endl;//檢視佇列是否為空,1即為空,0即非空 cout<<"q.front()="<<q.front()<<endl; //檢視隊首元素 cout<<endl; q.pop();//隊首元素出隊 cout<<"q.pop()後,目前佇列中的元素:2 3 "<<endl; cout<<"q.size()="<<q.size()<<endl;//q.size()檢視目前佇列中的元素個數 cout<<"q.empty()="<<q.empty()<<endl;//檢視佇列是否為空,1即為空,0即非空 cout<<"q.front()="<<q.front()<<endl; //檢視隊首元素 cout<<endl; q.pop();//隊首元素出隊 cout<<"q.pop()後,目前佇列中的元素:3" <<endl; cout<<"q.size()="<<q.size()<<endl;//q.size()檢視目前佇列中的元素個數 cout<<"q.empty()="<<q.empty()<<endl;//檢視佇列是否為空,1即為空,0即非空 cout<<"q.front()="<<q.front()<<endl; //檢視隊首元素 cout<<endl; q.pop();//隊首元素出隊 cout<<"q.pop()後,目前佇列是空的"<<endl; cout<<"q.size()="<<q.size()<<endl;//q.size()檢視目前佇列中的元素個數 cout<<"q.empty()="<<q.empty()<<endl;//檢視佇列是否為空,1即為空,0即非空 cout<<"佇列是空的時候將不能用q.front()檢視隊首元素" <<endl; }
執行結果:
插入元素1、2、3後,目前佇列中的元素:1 2 3
q.size()=3
q.empty()=0
q.front()=1q.pop()後,目前佇列中的元素:2 3
q.size()=2
q.empty()=0
q.front()=2q.pop()後,目前佇列中的元素:3
q.size()=1
q.empty()=0
q.front()=3q.pop()後,目前佇列是空的
q.size()=0
q.empty()=1
佇列是空的時候將不能用q.front()檢視隊首元素
queue和stack都是不能隨機存取的,即通過下標存取元素,也不能遍歷
至此佇列的基本用法就學完咯
是不是很簡單呢?
剛接觸肯定會覺得難,多些做題多些用,熟悉了就容易了,兄弟萌,加油!!!
到此這篇關於c++中queue用法的文章就介紹到這了,更多相關c++ queue用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45