STL序列式容器之堆棧——stack

stack其實是一個配接器(adapter),因爲SGI的STL缺省情況下是以deque作爲底層結構的,即修改某物接口,形成另一種數據結構。

到目前爲止,我們總結一下學過的容器的壓入和彈出操作。

vector:只能在尾端操作,push_back, pop_back;

list:由於stl中的list是一個雙向環狀鏈表,可以在頭部和尾部進入操作,push_front,push_back,pop_front,pop_back。

deque:由於是雙端隊列,支持雙向操作,和list相同。

而這一節我們要學習的是堆棧,支持後入先出的規則,只能在棧頂操作,所以壓入和彈出元素爲push和pop,注意並沒有back。

stack的實現很簡單,只需要將底層結構進行約束就可以了。

由於stack後進先出的規則,所以並無走訪功能,且stack是沒有迭代器的。

1、SGI中STL默認情況下是以雙端隊列爲底層結構的,我們知道list也是雙向開口的,因此也可以以list爲底層結構,具體如下;

#include<stack>

stack<int, list<int> > mystack;

這樣的底層結構就是雙向鏈表list。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章