1. 程式人生 > >STL序列式容器之堆疊——stack

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。