stack翻譯爲棧,是STL中實現的一個後進後出的容器,要實現stack,要先添加頭文件#include<stack>
定義:
stack<typename> name;
stack容器內元素訪問,由於棧本身是一種後進先出的結構所以在STL中的stack只能通過top()來訪問棧頂元素
#include<cstdio>
#include<stack>
using namespace std;
int main()
{
stack<int> st;
for(int i=1;i<=5;i++)
{
st.push(i);//用來把i壓入棧,此處依次入棧1 2 3 4 5
}
printf("%d\n",st.top());//top()取棧頂元素
return 0;
}
//輸出結果 5
stack常用函數
- push(),時間複雜度爲O(1),將元素依次壓入棧
- top(),時間複雜度爲O(1),獲取棧頂元素
- pop(),時間複雜度爲O(1),用以彈出棧頂元素
- empty(),檢查stack內是否爲空,返回true爲空,否則爲非空
- size(),返回stack內元素個數,時間複雜度爲O(1)
stack可以用來模擬一些遞歸,防止程序對棧內存的限制而導致程序運行出錯,一般來說,程序的棧的空間很小,所以用棧來模擬遞歸算法可以避免用普通函數進行遞歸的時候一旦遞歸層數過深時導致程序運行崩潰。