常用C STL (二)佇列與棧

2021-10-18 19:44:10 字數 2599 閱讀 8946

佇列(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...