STL系列之二 stack棧

2021-06-22 23:21:30 字數 1424 閱讀 9584

棧(statck)這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的(first in last out, filo)。棧只有乙個出口,允許新增元素(只能在棧頂上增加)、移出元素(只能移出棧頂元素)、取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。因此實現非常的方便。下面就給出棧的函式列表和vs2008中棧的源**,在stl中棧一共就5個常用操作函式(top()、push()、pop()、 size()、empty() ),很好記的。

vs2008中棧的源**

[cpp]view plain

copy

//vs2008中 stack的定義 morewindows整理(

template

>  

class stack  

explicit stack(const _container& _cont) : c(_cont)  

bool empty() const

size_type size() const

reference top()  

const_reference top() const

void push(const value_type& _val)  

void pop()  

const _container& _get_container() const

protected:  

_container c;   // the underlying container

};  

可以看出,由於棧只是進一步封裝別的資料結構,並提供自己的介面,所以**非常簡潔,如果不指定容器,預設是用deque來作為其底層資料結構的(對deque不是很了解?可以參閱

《stl系列之一 deque雙向佇列》

)。下面給出棧的使用範例:

[cpp]view plain

copy

//棧 stack支援 empty() size() top() push() pop()

// by morewindows(

#include 

#include 

#include 

#include 

using

namespace std;  

int main()  

//棧的大小

printf("%d %d\n", a.size(), b.size());  

//取棧項資料並將資料彈出棧

while (!a.empty())  

putchar('\n');  

while (!b.empty())  

putchar('\n');  

return 0;  

}  

STL系列之二 stack棧

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

STL系列之二 stack棧

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

STL系列之二 stack棧

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