STL之Stack

来源:互联网 发布:通达信的软件 编辑:程序博客网 时间:2024/06/06 17:44

stack是堆栈容器,是一种“先进后出”的容器。
stack是简单地装饰deque容器而成为另外的一种容器。

#include <stack>

stack对象的默认构造
stack采用模板类实现, stack对象的默认构造形式: stack stkT;

stack <int> stkInt;            //一个存放int的stack容器。stack <float> stkFloat;     //一个存放float的stack容器。stack <string> stkString;     //一个存放string的stack容器。...                 //尖括号内还可以设置指针类型或自定义类型。

stack的push()与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(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;

数据存取

stack.top();      //返回最后一个压入栈元素stack<int> stkIntA;stkIntA.push(1);stkIntA.push(3);stkIntA.push(5);stkIntA.push(7);stkIntA.push(9);int iTop = stkIntA.top();       //9stkIntA.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}

stack不可以像遍历vector和deque一样用迭代器或者数组下标以及at成员函数随即访问stack里面的元素。