1. 程式人生 > >C++之Stack容器初學

C++之Stack容器初學

Stack簡介

² stack是堆疊容器,是一種“先進後出”的容器。

² stack是簡單地裝飾deque容器而成為另外的一種容器。

² #include <stack>  

stack物件的預設構造

stack採用模板類實現, stack物件的預設構造形式: stack <T> stkT;  

stack <int> stkInt;            //一個存放int的stack容器。

stack <float> stkFloat;     //一個存放float的stack容器。

stack <string> stkString;     //一個存放

string的stack容器。

...     

//尖括號內還可以設定指標型別或自定義型別。

stackpush()pop()方法

stack.push(elem);   //往棧頭新增元素

stack.pop();   //從棧頭移除第一個元素

stack<int> stkInt;  

stkInt.push(1);stkInt.push(3);stkInt.pop();   

stkInt.push(5);stkInt.push(7);  

stkInt.push(9);stkInt.pop();   

stkInt.pop();  

此時stkInt存放的元素是1,5  

stack物件的拷貝構造與賦值

stack(const stack &stk);      //拷貝建構函式

stack& operator=(const stack &stk); //過載等號操作符

stack<int> stkIntA;

stkIntA.push(1);

stkIntA.push(3);

stkIntA.push(5);

stkIntA.push(7);

stkIntA.push(9);

stack<int> stkIntB(stkIntA); //拷貝構造

stack<int> stkIntC;

stkIntC = stkIntA; //賦值

stack的資料存取

² stack.top();   //返回最後一個壓入棧元素

stack<int> stkIntA;

stkIntA.push(1);

stkIntA.push(3);

stkIntA.push(5);

stkIntA.push(7);

stkIntA.push(9);

int iTop = stkIntA.top(); //9

stkIntA.top() = 19; //19

stack的大小

² stack.empty();   //判斷堆疊是否為空

² stack.size();      //返回堆疊的大小

stack<int> stkIntA;

stkIntA.push(1);

stkIntA.push(3);

stkIntA.push(5);

stkIntA.push(7);

stkIntA.push(9);

if (!stkIntA.empty())

{

int iSize = stkIntA.size(); //5

}