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壓入...