STL容器之stack與queue用法

2021-10-09 08:37:18 字數 1574 閱讀 4625

目錄

一、棧的概念

二、棧的構造與常用介面

三、佇列的概念

四、佇列的構造與常用介面

棧的儲存規則是先進後出(filo),可以同vector、deque一樣可以儲存任意一種資料型別的資料元素,它只有乙個出口,而且它只能訪問棧頂的元素,不允許遍歷操作,需要獲取棧裡的元素,則需要乙個個將棧頂的元素移出。

1、建構函式

(1)無參構造:原型stackstk,stack採用模板類實現,stack的物件預設構造形式;

(2)拷貝構造:原型stack(const stack& stk);

2、賦值操作:利用過載等號的操作stack& operator = (const stack& stk);

3、資料訪問操作

(1)push(element):往棧裡新增元素(入棧操作);

(2)pop():將棧頂元素移出(出棧操作);

(3)top():獲取棧頂的元素;

4、大小操作

(1)empty():判斷棧是否為空;

(2)size():獲取棧的大小。

//! stack test

void stacktest()

}

佇列queue的訪問規則是先進先出,同樣也是泛型程式設計,可以儲存任意一種資料型別的元素資料,在佇列中也是不允許遍歷,但是相比stack而言,卻多了乙個訪問佇列頭部元素的介面,那麼它特點是什麼呢:

(1)佇列有兩個出口,只允許一端新增資料,另一端移出資料;

(2)佇列只有頭部元素和尾部元素被訪問,不存在遍歷操作;

(3)新增資料的操作叫入隊;

(4)移出資料的操作叫出隊。

建構函式和常用介面基本與stack棧的用法一樣,只是訪問佇列頭部和尾部元素介面不同;

1、建構函式

(1)無參構造:原型queueque,queue採用模板類實現,queue的物件預設構造形式;

(2)拷貝構造:原型queue(const queue& que);

2、賦值操作:利用過載等號的操作queue& operator = (const queue& que);

3、資料訪問操作

(1)push(element):往佇列裡新增元素(入隊操作);

(2)pop():將佇列頭部元素移出(出隊操作);

(3)front():獲取佇列頭部的元素;

(4)back(): 獲取佇列尾部的元素;

4、大小操作

(1)empty():判斷佇列是否為空;

(2)size():獲取佇列的大小。

//! queue test

void queuetest()

}

STL容器之stack棧

棧 statck 這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。...

STL特殊容器之stack

stack是一種先進後出 filo 的資料結構,它只有乙個出口。stack允許新增元素 移除元素 取得棧頂元素,除了棧頂元素,取不到其他元素,即棧不允許遍歷,也不提供迭代器。deque作為stack的底層容器,可以輕易的形成乙個stack。因此,sgi stl以deque作為預設情況下的stack的...

STL容器之stack和queue

stl中的stack和queue不是原生的容器類,它們底層都是基於其他模版類封裝而成,初始化的時候可以指明使用何種容器型別,預設使用deque。這篇文章主要介紹下stack和queue的基本操作。1.stack 初始化 stack的的初始化和其他模版類一致,需要指明儲存資料型別。如 stacknum...