佇列(que
ue
queue
queu
e)是一種允許在兩端進行操作的線性結構。它的特點是:
①只能在隊首(佇列的第乙個元素)彈出(pop
poppo
p)元素。
②只能在隊尾(佇列的最後乙個元素)插入(pus
hpush
push
)元素。
所以,先進去的元素總是先出來,後進去的元素總是後出來。可以看成「first in first out」,英文縮寫成"fif
ofifo
fifo
"。如果有小夥伴對於剛才那段話不清楚,或是感覺不好記,就可以把它想象成食堂排隊打飯的情景,先來的人先打飯,後來的人後打飯。(是不是突然明白了呢?)
#include
//凡事均需標頭檔案,佇列不例外
#include
using
namespace std;
intmain()
。 q.
push(2
);// q.
push(3
);// q.
push(1
);//佇列是可以有重複元素的。
cout << q.
size()
<< endl;
//size用來統計個數。
cout << q.
front()
<<
" ";
//q的第乙個元素是1。
q.pop()
;//pop裡不用傳引數。
while
(!q.
empty()
)return0;
}
執行結果:
412
31
下面就列舉幾個stl佇列中主要的函式。
函式名函式意義
p us
hpush
push入隊pop
poppo
p出隊s iz
esize
size
佇列中元素的個數
f ro
nt
front
fron
t隊首元素
e mp
ty
empty
empt
y判斷佇列是否為空
其他函式請詳見官方參考文件。
講完了佇列,接下來就講棧(sta
ck
stack
stack)。
棧(s ta
ck
stack
stac
k)是一種只允許在一端進行操作的線性資料結構。它的特點是:只能在棧頂(佇列的第乙個元素)彈出(pop
poppo
p)元素。
所以,先進去的元素總是後出來,後進去的元素總是先出來。可以看成「first in last out」,英文縮寫成"fil
ofilo
filo
"。如果看不懂,或是覺得不好記,就通過下面這個例子:
明明買了一桶羽毛球,他把羽毛球都倒出來了。那麼,他先裝進去的羽毛球就得到最後才拿出來(因為他被上面的羽毛球被擋住了)。
#include
//凡事均需標頭檔案,棧也不例外
#include
using
namespace std;
intmain()
。 st.
push(2
);// st.
push(3
);// st.
push(1
);//在c++中,棧是可以有重複元素的。
cout << q.
size()
<< endl;
//size用來統計個數。
cout << st.
top(
)<<
" ";
//st的棧頂元素是1。
st.pop();
//pop裡不用傳引數。
while
(!q.
empty()
)return0;
}
執行結果:
123
14
下面就列舉幾個stl佇列中主要的函式。(棧中沒有clear函式)
函式名函式意義
p us
hpush
push入棧pop
poppo
p出棧t op
topto
p棧頂元素
s iz
esize
size
棧中元素的個數
e mp
ty
empty
empt
y判斷棧是否為空
其他函式請詳見官方參考文件。
c STL棧與佇列(stack queue)
includ stacka 定義型別為xx的棧a a.push 壓棧 a.pop 出棧 a.top 返回棧頂元素 a.size 返回棧內元素個數 a.empty 判斷棧內是否為空 include queuea定義型別為xx的佇列a a.push 入隊 a.pop 出隊 a.front 返回隊頭元素 ...
c stl之佇列 棧 與優先佇列
棧 棧是先入後出,後入先出 有push 和pop 兩種操作 使用時定義是stacks top 操作是取棧頂的元素 但是不去刪除 在集合計算機的問題中的一段code 解釋 if idcache.cout x return idcache x 是如若找到集合x就返回他的id 佇列 佇列是 先如先出的 就...
rabbitmq學習二 佇列
require once dir vendor autoload.php use phpamqplib connection amqpstreamconnection use phpamqplib message amqpmessage 1.鏈結伺服器 connection new amqpstre...