目錄
一、棧的概念
二、棧的構造與常用介面
三、佇列的概念
四、佇列的構造與常用介面
棧的儲存規則是先進後出(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...