C STL 棧和佇列的使用

2021-06-26 05:41:02 字數 1157 閱讀 8218

一、棧

棧的定義在標頭檔案中,stack 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,但只有元素型別是必要的,在不指定容器型別時,預設的容器型別為deque。

定義stack 物件的示例**如下:

stacks1;

stacks2;

stack的基本操作有:對於stacks

入     棧:           s.push(x);

出      棧:           s.pop();   //出棧只是刪除棧頂元素,並不返回該元素

訪問棧頂元素:    s.top();

判  斷   棧  空:    s.empty();//棧空時,返回true

棧中的元素個數:s.size();

例子:#include#includeusing namespace std;

int main()

{ stackmys;

mys.push(9);

mys.push(3);

mys.push(2);

cout<<"mys.size: "<

queue 模板類的定義在標頭檔案中。

queue 模板類也需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。

定義queue 物件的示例**如下:

queueq1;

queueq2;

queue 的基本操作有:

入           隊:q.push(x);   // 將x 接到佇列的末端。

出           隊:q.pop();      //彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。

訪問隊首元素:q.front();   //即最早被壓入佇列的元素。

訪問隊尾元素:q.back();  //即最後被壓入佇列的元素。

判斷佇列空   q.empty(); //當佇列空時,返回true。

佇列中的元素個數:q.size();

#include#includeusing namespace std;

int main()

{ queuemyq;

myq.push(9);

myq.push(3);

myq.push(2);

cout<<"myq.size: "<

C STL 棧和佇列

結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算限制與棧不同,是兩...

C STL 棧和佇列詳解

一.解釋 1.棧 結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算...

C STL 棧和佇列詳解

一.解釋 1.棧 結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算...