STL特殊容器之stack

2021-07-29 15:29:20 字數 1084 閱讀 7774

stack是一種先進後出(filo)的資料結構,它只有乙個出口。stack允許新增元素、移除元素、取得棧頂元素,除了棧頂元素,取不到其他元素,即棧不允許遍歷,也不提供迭代器。deque作為stack的底層容器,可以輕易的形成乙個stack。因此,sgi stl以deque作為預設情況下的stack的底部結構。所以stack也是容器配接器。使用stack之前須先含入標頭檔案。

在標頭檔案中,class stack定義如下:

namespace

std

第乙個引數代表元素型別,帶有預設值的第二個引數定義stack內部存放元素所使用的容器,預設使用deque。之所以使用deque而非vector,是因為deque移除元素釋放記憶體,並且不必在重新分配時複製所有元素。也可以使用vector或者list來容納元素:

std::stack

> st;

stack的使用示例

//example of stack,use deque to construct stack

#include

#include

using namespace std

;int main()

cout << endl;

return 0

;}

輸出結果:

以list作為stack的底層容器例項:

#include

#include

#include

#include

using

namespace

std;

int main()

輸出結果:

STL容器之stack棧

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

STL容器之stack和queue

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

STL容器總結之stack和queue

std stack first std stack second first std stack third 使用vector初始化stackempty 判斷是否為空 push elem e 棧頂壓入一元素 pop 彈出棧頂元素 top 返回棧頂元素 size 返回棧中元素個數push x 將x壓入...