stack是一種先進後出(First In Last Out,FILO)的數據結構,它只有一個出口。stack容器容許新增元素,移除元素,取得棧頂元素,可是除了最頂端外,沒有任何其餘方法能夠存取stack的其餘元素。換言之,stack不容許有遍歷行爲。數據結構
stack是簡單地裝飾deque容器而成爲另外的一種容器。函數
stack採用模板類實現, stack對象的默認構造形式: stack
stack <int> stkInt; //一個存放int的stack容器。 stack <float> stkFloat; //一個存放float的stack容器。 stack <string> stkString; //一個存放string的stack容器。 //尖括號內還能夠設置指針類型或自定義類型。
stack.push(elem); //往棧頭添加元素code
stack.pop(); //從棧頭移除第一個元素對象
stack<int> stkInt; stkInt.push(1); stkInt.push(3); stkInt.pop(); //此時stkInt存放的元素是1
stack(const stack &stk); //拷貝構造函數blog
stack& operator=(const stack &stk); //重載等號操做符string
stack<int> stkIntA; stkIntA.push(9); stack<int> stkIntB(stkIntA); //拷貝構造 stack<int> stkIntC; stkIntC = stkIntA; //賦值
stack.top(); //返回最後一個壓入棧元素,即棧頂元素ast
stack<int> stkIntA; stkIntA.push(1); stkIntA.push(7); stkIntA.push(9); int iTop = stkIntA.top(); //9
stack.empty(); //判斷堆棧是否爲空模板
stack.size(); //返回堆棧的大小class
stack<int> stkIntA; stkIntA.push(1); stkIntA.push(3); if (!stkIntA.empty()){ int iSize = stkIntA.size(); //2 }