棧(statck)這種數據結構在計算機中是相當出名的。棧中的數據是先進後出的(First In Last Out, FILO)。棧只有一個出口,允許新增元素(只能在棧頂上增加)、移出元素(只能移出棧頂元素)、取得棧頂元素等操作。在STL中,棧是以別的容器作為底部結構,再將接口改變,使之符合棧的特性就可以了。
使用標准庫的棧和隊列時,先包含相關的頭文件
#include<stack>
#include<queue>
定義棧如下:
stack<int> stk;
定義隊列如下:
queue<int> q;
棧提供了如下的操作
s.empty() 如果棧為空返回true,否則返回false
s.size() 返回棧中元素的個數
s.pop() 刪除棧頂元素但不返回其值
s.top() 返回棧頂的元素,但不刪除該元素
s.push() 在棧頂壓入新元素
隊列提供了下面的操作
q.empty() 如果隊列為空返回true,否則返回false
q.size() 返回隊列中元素的個數
q.pop() 刪除隊列首元素但不返回其值
q.front() 返回隊首元素的值,但不刪除該元素
q.push() 在隊尾壓入新元素
q.back() 返回隊列尾元素的值,但不刪除該元素